mirror of https://github.com/peter4431/rq.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
538 B
Python
19 lines
538 B
Python
13 years ago
|
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))
|