让芹菜停止消耗任务

时间:2012-04-17 15:12:51

标签: flask celery

前提条件:有一个小芹菜集群处理一些任务。每个芹菜实例都有很少的工人在运行。一切都在烧瓶下运行。

任务:我需要能够从代码中暂停/恢复从特定节点消耗任务。即任务可以决定当前的芹菜实例和她的所有工人是否应暂停或恢复消耗任务。

没有找到任何解决这个问题的直接方法。有什么建议吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

或许更好的策略是将工作分成几个队列。

拥有default队列,所有任务都从此开始。根据您的逻辑,观察默认队列的工作人员可以将子任务添加到其他活动队列。如果您可以直接从flask中将任务添加到活动队列,则可能不需要此额外队列。

这样,每个节点都不必担心它是暂停还是活动。它只消耗了添加到队列中的所有内容。除非默认工作人员添加了子任务,否则这些特定于位置的队列将为空(并因此暂停)。

答案 1 :(得分:0)

Control.cancel_consumer(queue, **kwargs)reference)就是您的用例可能需要的全部内容。