La fonction de rappel pour le céleri apply_async

- Je utiliser celery dans mon application pour exécuter les tâches périodiques. Nous allons voir l'exemple simple ci-dessous

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

Comme vous pouvez le voir dans l'exemple ci-dessus, j'utilise celery à exécution asynchrone de la tâche, mais (car il est une file d'attente) j'ai besoin de faire queue.fail(uid) en cas d'exception dans do_stuff ou queue.ack(uid) autrement. Dans cette situation, il serait très clair et très utile d'avoir quelques rappel de ma tâche dans les deux cas - on_failure et on_success.

J'ai vu quelques la documentation, mais jamais vu des pratiques d'utilisation des rappels avec apply_async. Est-il possible de faire cela?

OriginalL'auteur gakhov | 2012-09-21