等待Celery任务完成而没有结果后端

时间:2016-12-06 20:58:39

标签: python celery

如果没有结果后端,我该如何等待Celery任务完成?当没有使用结果后端时,.collect() and .get()都会失败。我不需要任务的结果,只需等待它完成。

>>> add.delay(1, 2).get()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/celery/result.py", line 169, in get
    no_ack=no_ack,
  File "/usr/local/lib/python2.7/site-packages/celery/backends/base.py", line 616, in _is_disabled
    'No result backend configured.  '
NotImplementedError: No result backend configured.  Please see the documentation for more information.

1 个答案:

答案 0 :(得分:2)

基本上,任务需要与客户沟通完成。

结果后端是芹菜用于传达任务状态的机制。如果禁用它,则必须实现自己的通信机制。

你可以在商店中设置一个标志(像redis那样轻量级的东西会很好),或者任务可以写入共享安装,或者你可以实现某种任务和客户端可以交谈的轻量级web服务。

然而,所有这些都与结果后端的作用非常相似(特别是第一个建议)。