Python 多芹菜遥控器

Python 多芹菜遥控器,python,rabbitmq,celery,Python,Rabbitmq,Celery,这个问题是关于在不同的机器上使用多个远程芹菜工人的问题。应用程序的实现可以被概念化为: 我的应用程序(Producer)将每隔5分钟向队列中添加多个任务(比如50个任务)(假设pythonfor循环每隔5分钟异步执行一次任务列表)。我希望芹菜工人(将是远程机器)在完成这些任务后,尽快将其接走 我的问题是芹菜/RabbitMQ是否会自动处理任务分配(因此没有工作人员从队列中拾取已由工作人员拾取的任务-即确保工作不重复)并平均分配任务,以便在其他工人努力工作时,不会让任何工人闲逛,或者这些任务是否

这个问题是关于在不同的机器上使用多个远程芹菜工人的问题。应用程序的实现可以被概念化为:

我的应用程序(Producer)将每隔5分钟向队列中添加多个任务(比如50个任务)(假设pythonfor循环每隔5分钟异步执行一次任务列表)。我希望芹菜工人(将是远程机器)在完成这些任务后,尽快将其接走

我的问题是芹菜/RabbitMQ是否会自动处理任务分配(因此没有工作人员从队列中拾取已由工作人员拾取的任务-即确保工作不重复)并平均分配任务,以便在其他工人努力工作时,不会让任何工人闲逛,或者这些任务是否必须在设置中进行配置/编程?*


如果有人能将相关文档转发给我,我将不胜感激(我正在查看芹菜文档,但在此上下文中找不到有关远程芹菜工人的具体信息。)

自动,但您需要了解此处所述的预取功能:,阅读至本页末尾


简言之,预取在两个级别上工作:工作者级别和进程级别,因为工作者可能有多个进程。要在工作者级别禁用预取,您需要在芹菜设置中指定
worker\u prefetch\u multiplier=1
,要在进程级别禁用预取,您需要在工作者的命令行中指定
-Ofair
选项。

因此,在RabbitMQ文档中挖掘之后,默认的交换方法似乎是直接交换(ref)这意味着任务将以循环方式分配给工人。

非常感谢,请查看文档!您还可以告诉我芹菜文档,其中指定和/或提供任务自动分配的详细信息,谢谢!此外,由于异步任务只是一组相同的HTTP REST调用(每个任务都指向不同的设备),因此使用Eventlet实现并发是否有意义:找不到关于自动性质的任何特定位置。路由可能是您所需要的:。我也不能对Eventlet说什么,因为我从未使用过它。