我有5个名为1-5的工作进程和两个队列A和B,我需要将队列A分配给工作进程1和2,3,4,5专用于B,当A为空或1,2处于空闲状态时,我需要为队列B中的任务分配工作进程1和2。我需要在我的芹菜任务中使用django应用程序的rabbitmq brocker进行配置。您能根据上面的逻辑指定如何分配特定于队列的任务和运行工作进程吗
发布于 2017-05-23 23:33:13
所以,对于芹菜,这是你需要的:
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
https://stackoverflow.com/questions/44138781
复制相似问题