【发布时间】:2014-07-10 14:42:10
【问题描述】:
我得到了带有 RabbitMQ 后端的 celery 项目,该项目严重依赖于检查计划任务。我发现下面的代码大部分时间什么都不返回(当然还有定时任务):
i = app.control.inspect()
scheduled = i.scheduled()
if (scheduled):
# do something
这段代码也从其中一项任务中运行,但我认为没关系,我从交互式 python 命令行得到了相同的结果(有一些例外,见下文)。
同时,celery -A <proj> inspect scheduled 命令永远不会失败。另外,我注意到,当第一次从交互式 python 命令行调用时,这个命令也永远不会失败。大多数连续的i.scheduled() 调用都没有返回任何内容。
i.scheduled() 只在第一次调用时保证结果?
如果是这样,为什么以及如何从任务中检查计划任务?运行专门的工作人员并在每项任务后重新启动它?对于这种微不足道的任务似乎有点过头了。
请解释一下,如何正确使用此功能。
【问题讨论】: