1

好的,我已经对这个问题进行了一些搜索,但没有找到太多。
例如,我有一个工人和两个不同的任务来源。其中一个是按节拍安排的,每小时开始一个小任务,另一个有大量的任务,大约一个月会不停地进行。问题是这些小任务永远不会运行,或者会有很大的延迟。
所以,当然我试图将它们分开在不同的队列中,但这没有任何意义,因为它们都是由单个工作人员处理的(两个不同的工作人员都可以,但我的问题不是这样)。我想知道是否有内置的机制来为 celery worker 优先队列。或者,至少我想如果有人会向我指出一些关于工人如何选择此时必须从哪个队列中处理的任务的信息。使用一个队列,它似乎是简单的、线性的。但是同一工人处理的不同队列呢?

谢谢你

4

1 回答 1

1

没有任何方法可以对队列中的任务进行优先级排序。队列就是队列,celery 只能一个一个地获取任务。可能的解决方案是

http://docs.celeryproject.org/en/latest/userguide/routing.html#automatic-routing

您可以启动两个单独的工作人员(使用不同的 --queue 选项)。我认为这就足够了。

于 2013-10-10T07:10:42.347 回答