2017-05-23 32 views
2

我有5名工人命名爲1-5和兩個隊列A和B,我需要爲工人1和2分配隊列A,並且爲B分配3,4,5,我需要當A爲空或1,2爲空閒時,爲隊列B中的任務分配工人1和2。我需要在我的芹菜任務中使用django應用程序中的rabbitmq brocker進行配置。您可以指定如何根據上述邏輯Django芹菜多個工人和多個隊列

回答

1

所以配置隊列的具體任務和運行工人,芹菜這是你需要什麼:

celery multi start 5 -A conf -l info -Q:1-2 queueA -Q:3-5 queueB --pidfile="%n.pid" 

對於Django的分配隊列你有一個以上的方法: (我的設置是在CONF)中設置 通過任務應用程序/文件夾:

app.conf.task_routes = { 
    'appA.tasks.*': {'queue': 'queueA'}, 
    'appB.tasks.*': {'queue': 'queueB'}, 
} 

直接使用:

myTask.apply_async((2, 2), queue='queueA', countdown=10) 

也許一些其他的,但對我來說我用這個方法:

app.conf.task_default_queue = 'queueA' 

我用app.conf.task_routes像cron的

具體使用