Rückruf für Sellerie apply_async

Benutze ich celery in meiner Anwendung zur Ausführung periodischer Aufgaben. Mal sehen, einfache Beispiel unten

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

Wie Sie sehen können in dem obigen Beispiel, ich benutze celery laufen async task, aber (da es eine Warteschlange) ich muss queue.fail(uid) im Fall der Ausnahme, die in do_stuff oder queue.ack(uid) sonst. In dieser situation wäre es sehr klar und nützlich, um einige callback meine Aufgabe in beiden Fällen - on_failure und on_success.

Sah ich einige Dokumentation, aber noch nie gesehen Praktiken der Verwendung von callbacks mit apply_async. Ist es möglich das zu tun?

InformationsquelleAutor gakhov | 2012-09-21
Schreibe einen Kommentar