我正在使用芹菜来满足我的项目要求。 目前我已经创建了一个队列'HighPriorityQueue'以及默认队列,即那里 将是一名工人和两个队列。
将有不同的任务排队到这两个队列。我需要处理 每当任务排队时都会出现'HighPriorityQueue'。
我怀疑芹菜如何处理这个队列?芹菜会将队列平行处理吗? 或者我可以这样做,即如果某个任务在“HighPriorityQueue”中排队,则应该立即处理它,而不管已经在队列中排队的作业 默认一个?
请提前建议和感谢。
答案 0 :(得分:0)
哇,老问题了……
Celery无法将优先级放在一组队列上。最好的选择是拥有一个仅消耗HighPriortyQueue
的高优先级工作池,以及一个消耗default
+ HighPriorityQueue
或仅`default的默认工作池。
某些消息代理(RabbitMQ for sure)允许您在队列中设置优先级,基本上将重要消息推入队列的顶部以首先被使用,然后您的Celery工作人员可以愚蠢地使用这些消息并基本完成你想要什么。但是,在队列级别执行此操作本身就有挑战/陷阱。