我安装了以下版本的芹菜和rabbitmq -
芹菜3.1.6
rabbitmq 3.1.1
我可以从PHP发布任务到默认队列 -
//client.php PostTask('tasks.add', array(2,2));
我的worker模块是python -
# tasks.py from celery import Celery celery = Celery('tasks', broker='amqp://guest:guest@localhost:5672//') @celery.task(queue='demo', name='add') def add(x, y): return x + y
我像这样经营芹菜工人和客户 -
# terminal window 1 $ celery -A tasks worker --loglevel=info # terminal window 2 $ php -f client.php
这有效.我在终端窗口1中看到下面的输出:
Received task: tasks.add[php_52b1759141a8b3.43107845] Task tasks.add[php_52b1759141a8b3.43107845] succeeded in 0.000701383920386s: 4
但我希望有不同的队列.对于演示,假设我只想要一个名为demo的队列.所以我像这样经营我的芹菜工人 -
$ celery -A tasks worker --loglevel=info -Q demo
但它不起作用.任务没有被执行.我想这可能是因为PHP代码在默认队列上发布任务:celery(显然不在demo队列中).
如何在PHP中的特定队列上发布我的任务?请帮忙.