Python 使用单个队列的多个芹菜实例

Python 使用单个队列的多个芹菜实例,python,django,celery,celery-task,Python,Django,Celery,Celery Task,是否可以在不同的机器上使用多个芹菜实例,从单个队列执行任务,最好使用django orm作为后端使用django? 如果可能的话,我如何实现这一点,我似乎找不到任何相关文档。是的,这是可能的,他们只需要使用相同的文档。例如,如果您正在使用AMQP,则服务器上的配置必须共享相同的配置 BROKER\u URL='1〕amqp://user:password@本地主机:5672/' 有关更多详细信息,请参阅。例如,假设您想为两台服务器创建一个公共队列,然后为每台服务器指定一个队列,您可以这样做 在服

是否可以在不同的机器上使用多个芹菜实例,从单个队列执行任务,最好使用django orm作为后端使用django?
如果可能的话,我如何实现这一点,我似乎找不到任何相关文档。

是的,这是可能的,他们只需要使用相同的文档。例如,如果您正在使用AMQP,则服务器上的配置必须共享相同的配置

BROKER\u URL='1〕amqp://user:password@本地主机:5672/'

有关更多详细信息,请参阅。例如,假设您想为两台服务器创建一个公共队列,然后为每台服务器指定一个队列,您可以这样做

在服务器1上: 在服务器2上:
当然这是可选的,默认情况下,所有任务都将路由到名为
芹菜的队列

在这种情况下是否需要添加芹菜路由?我可以使用自动路由吗?现在发生的事情是,我在两台机器上用两个芹菜工人来尝试,两个工人都开始了任务。不是,不是。这里唯一重要的是,工作人员共享同一个代理,因此他们将从名为
芹菜
的相同(默认)队列中消费。
CELERY_ROUTES = {'your_app.your_specific_tasks1': {'queue': 'server1'}}
user@server1:/$ celery -A your_celery_app worker -Q server1, default
CELERY_ROUTES = {'your_app.your_specific_tasks2': {'queue': 'server2'}}
user@server2:/$ celery -A your_celery_app worker -Q server2, default