Python 确定芹菜队列/任务的优先级

Python 确定芹菜队列/任务的优先级,python,python-3.x,celery,Python,Python 3.x,Celery,我对芹菜和芹菜的工作原理有基本的了解。在我当前的项目中,我遇到了对任务进行优先排序的需要。我的意思是,如果有两种任务,比如芹菜队列中的A和B,芹菜应该优先处理任务B,而不管哪个任务在队列的最前面。有办法吗 队列优先级对我来说也很好。这意味着我可以创建两个不同的队列,比如高优先级队列和低优先级队列,芹菜应该总是先执行高优先级队列中的任务,然后再执行低优先级队列中的任务 我还知道,我们可以为这两个队列分配不同的工作人员,但这意味着这两个队列中的任务将同时执行。我需要先执行高优先级队列中的任务。有什么

我对芹菜和芹菜的工作原理有基本的了解。在我当前的项目中,我遇到了对任务进行优先排序的需要。我的意思是,如果有两种任务,比如芹菜队列中的A和B,芹菜应该优先处理任务B,而不管哪个任务在队列的最前面。有办法吗

队列优先级对我来说也很好。这意味着我可以创建两个不同的队列,比如高优先级队列和低优先级队列,芹菜应该总是先执行高优先级队列中的任务,然后再执行低优先级队列中的任务

我还知道,我们可以为这两个队列分配不同的工作人员,但这意味着这两个队列中的任务将同时执行。我需要先执行高优先级队列中的任务。有什么想法吗


谢谢

通常建议使用多队列的多工作者方法,但正如您所指出的,低优先级队列/工作者将与高优先级工作者同时工作。如果您有很多小任务想要很快执行,那么这是一个有趣的设置,因此您将它们放在高优先级队列中,而较长的任务被推到低优先级队列中。您还可以进行设置,只需将更多资源(或更好的机器)提供给高优先级工作者

由于您需要不同的解决方案,我将建议
apply\u async
priority
参数。正如中所指出的,您确实需要进行一些设置,并且它只适用于某些代理。(对于RabbitMQ,它从3.5.0版开始工作。)在您的队列上设置了
x-max-priority
以及参考答案中指出的其他设置后,您可以简单地对以下任务设置优先级:

your_task.apply_async(queue="your_queue_that_can_handle_priority", priority=10)