如何获得芹菜定期运行任务的结果?

时间:2014-06-10 06:34:28

标签: task celery

当周期性任务运行时,如何让任务返回?我需要运行结果。

这是我的问题:

例如,我的定期任务:

@shared_task(name='add')
def add():
    x=1,y=2
    return x+y

我将任务作为周期性任务从django admin添加,然后使用-B DEBUG选项启动worker。它运行良好。但我想得到返回值。当周期性任务是什么时,有任何方法可以得到retult运行

1 个答案:

答案 0 :(得分:0)

要获取任务结果,您可以在.get()对象上调用AsyncResult方法,该方法在向队列添加任务时返回:

result = add.delay()
result.get() // returns 5

通过设置CELERY_RESULT_PERSISTENTCELERY_TASK_RESULT_EXPIRES,确保将结果存储足够长的时间。请阅读AMQP backend settings部分中的更多内容。