commit 3aae096ac28efc18a12b2a7bb8cb37aef42f9c62 Author: Vincent Driessen Date: Fri Nov 11 17:18:06 2011 +0100 Made a beginning to a Python module structure to support Redis queue. @henrikuiper: Go ahead and experiment with this setup ;) diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..688fc86 --- /dev/null +++ b/__init__.py @@ -0,0 +1,18 @@ +from rdb import conn +from pickle import loads, dumps + +def queue_daemon(app, queue_keys, rv_ttl=500): + """Naive implementation of a Redis queue worker, based on + http://flask.pocoo.org/snippets/73/ + + Will listen endlessly on the given queue keys. + """ + while True: + msg = conn.blpop(queue_keys) + func, key, args, kwargs = loads(msg[1]) + try: + rv = func(*args, **kwargs) + except Exception, e: + rv = e + if rv is not None: + conn.setex(key, rv_ttl, dumps(rv))