3

我正在使用芹菜来满足我的项目要求。目前我已经创建了一个队列'HighPriorityQueue'以及默认队列,即会有一个工作人员和两个队列。

将有不同的任务排队到这两个队列中。每当任务在其中排队时,我都需要处理“HighPriorityQueue”。

我的疑问是芹菜将如何处理这个队列?芹菜会并行处理队列吗?或者我是否可以这样做,如果某些任务在“HighPriorityQueue”中排队,则应该立即处理它,而不管默认任务中已经排队的作业如何?

请提前咨询和感谢。

4

1 回答 1

0

哇,老问题...

Celery 无法为一组队列设置优先级。您最好的选择是拥有一个仅使用 的高优先级工作程序池和一个使用+或仅使用 `defaultHighPriortyQueue的默认工作程序池。defaultHighPriorityQueue

一些消息代理(当然是 RabbitMQ)允许您在队列中设置优先级,基本上将重要消息推送到顶部的队列中以首先使用,然后您的一个 Celery 工作人员可以愚蠢地使用这些消息并基本上完成您想要的。但是,在队列级别执行此操作会带来自己的挑战/陷阱。

于 2018-12-11T14:43:57.743 回答