我的芹菜配置中有设置
CELERY_QUEUES = (
Queue('oracle', Exchange('exchange1'), routing_key='bitch'),
Queue('neo', Exchange('exchange2'), routing_key='check'),
Queue('morpheus', Exchange('exchange3'), routing_key='fromlocal'),
Queue('trinity', routing_key='getme.*'),
Queue('xxx', routing_key='showme.#'),
),
CELERY_ROUTES={
'whois.tasks.parsewhois':{
'queue':'trinity',
'routing_key':'getme.*',
},
'whois.tasks.fororacle':{
'queue':'xxx',
'routing_key':'showme.#',
},
},
我将我的2名工人视为
celery -A jarvis worker -l info -Q trinity --hostname=trinity@%h
celery -A jarvis worker -l info -Q xxx --hostname=xxx@%h
现在我向工作人员发送任务
parsewhois.apply_async(args['20596696'],queue='trinity',routing_key='getme')
上述任务仅发送到三位一体队列,但是当我运行以下命令时:
fororacle.apply_async(args=[10],queue='xxx',routing_key='showme')
现在此任务进入三位一体队列和xxx队列,两者都获得相同的任务并执行相同的任务。 是不是我没有得到主题和直接的差异或我的配置是错误的。任何人都可以帮助我吗?
答案 0 :(得分:1)
尝试使用不同的工作名称执行celery命令:
celery -A jarvis worker -l info -Q trinity --hostname=trinity@%h -n worker1.%h
celery -A jarvis worker -l info -Q xxx --hostname=xxx@%h -n worker2.%h
希望有所帮助