【发布时间】:2012-03-16 17:03:07
【问题描述】:
我刚开始使用 Celery(更具体地说是 django-celery),对它还是不熟悉。
我正在开发一个应用程序,它将发送要在工作人员中远程执行的任务,其中每个任务大约需要 3 分钟才能完成。 (不是繁重的处理,网络爬行的东西,但这无关紧要)。
当我发送任务时,我会得到一个可用于获取结果的参考。
>>> result = task_name.delay()
>>> result
<AsyncResult: c34d78d8-b512-4165-9384-2b87933e33b7>
但是,要知道任务何时完成,我必须不断轮询
>>> result.ready()
False
为了避免轮询,我的想法是监听task-succeeded/task-failed 事件。 因此,当我知道他们已经返回时,我可以继续处理,而无需检查数据库或不断询问是否准备好。 (如果有人对任务完成检查有更好的建议,我很乐意听到)
不确定我看到明显的问题是否有问题,但是,我不明白我该怎么做。
在Celery Events docs 中,它说我应该为此使用自定义相机。 这是另一个问题,因为我打算使用 django-celery 的 Django Admin Monitor。
所以,最后: 我可以在没有相机的情况下捕捉事件吗?如何? 如果没有,我可以将它与 django-celery 的相机一起使用吗?
【问题讨论】:
-
您的问题是否已解决或仍未得到解答?做更新。
标签: python celery django-celery