1

我从 Celery(与 Django 集成)开始。

我想安排一个任务,每 5 分钟一次。该任务可以有一个参数,该参数是最后一个任务执行结果(它充当上下文)。

我找到了如何链接和安排任务,但我找不到将这个“上下文”提供给下一个任务的正确方法。

抱歉,如果我错过了 Celery 文档中的某些内容..

谢谢你的帮助,阿诺。

4

2 回答 2

0

我认为最好使用一些持久性存储来解决这个问题。eta但是您可以使用或countdown 参数在 celery 中运行延迟任务:

ETA(预计到达时间)允许您设置一个特定的日期和时间,这是您的任务将执行的最早时间。倒计时是将 eta 设置为未来几秒的快捷方式。

于 2012-12-27T12:23:52.953 回答
0

我实施了亚历克斯瓦西的解决方案。

首先,我尝试为每个任务使用相同的 id,但有时,该任务无法检索到最后一个结果。

我转向回调方式,所以每次我的任务结束时,我都会使用正确的 ETA 开始另一个任务,并将最后一个结果作为参数传递。它工作得很好。

对于错误处理,我在task_failure 信号上附加了一个方法。

于 2013-02-01T01:22:50.063 回答