django芹菜 - 在一个工人中运行两个队列

时间:2013-03-04 06:46:51

标签: django celery

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

将有不同的任务排队到这两个队列。我需要处理 每当任务排队时都会出现'HighPriorityQueue'。

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

请提前建议和感谢。

1 个答案:

答案 0 :(得分:0)

哇,老问题了……

Celery无法将优先级放在一组队列上。最好的选择是拥有一个仅消耗HighPriortyQueue的高优先级工作池,以及一个消耗default + HighPriorityQueue或仅`default的默认工作池。

某些消息代理(RabbitMQ for sure)允许您在队列中设置优先级,基本上将重要消息推入队列的顶部以首先被使用,然后您的Celery工作人员可以愚蠢地使用这些消息并基本完成你想要什么。但是,在队列级别执行此操作本身就有挑战/陷阱。