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