0

是否有可能在不同的机器上使用多个 celery 实例从单个任务队列中消耗,使用 django 最好使用 django-orm 作为后端?如果可能的话,我该如何实现,我似乎找不到任何文档。

4

1 回答 1

1

是的,有可能,他们只需要使用同一个经纪人。例如,如果您使用 AMQP,则服务器上的配置必须共享相同的

BROKER_URL = 'amqp://user:password@localhost:5672//'

有关详细信息,请参阅路由页面。例如,假设您想为两台服务器建立一个公共队列,然后每个服务器都有一个特定的队列,您可以这样做

在服务器 1 上:

CELERY_ROUTES = {'your_app.your_specific_tasks1': {'queue': 'server1'}}
user@server1:/$ celery -A your_celery_app worker -Q server1, default

在服务器 2 上:

CELERY_ROUTES = {'your_app.your_specific_tasks2': {'queue': 'server2'}}
user@server2:/$ celery -A your_celery_app worker -Q server2, default

当然它是可选的,默认情况下所有的任务都会被路由到名为celery.

于 2014-07-21T08:02:35.593 回答