I use celery
in my application to run periodic tasks. Let's see simple example below
from myqueue import Queue
@perodic_task(run_every=timedelta(minutes=1))
def process_queue():
queue = Queue()
uid, questions = queue.pop()
if uid is None:
return
job = group(do_stuff(q) for q in questions)
job.apply_async()
def do_stuff(question):
try:
...
except:
...
raise
As you can see in the example above, i use celery
to run async task, but (since it's a queue) i need to do queue.fail(uid)
in case of exception in do_stuff
or queue.ack(uid)
otherwise. In this situation it would be very clear and usefull to have some callback from my task in both cases - on_failure
and on_success
.
I saw some documentation, but never seen practices of using callbacks with apply_async
. Is it possible to do that?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…