脚本宝典收集整理的这篇文章主要介绍了如何在PHP中的celery-rabbitmq队列上发布任务?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
//client.PHP <?PHP require 'celery-PHP/celery.PHP'; $c = new Celery('localhost','guest','/'); $result = $c->PostTask('tasks.add',array(2,2));
我的工作模块在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
为了将队列更改为发布,必须在实例化与Celery的连接时指定队列名称.
所以,如果您使用“-Q演示”选项启动您的Celery员工,那么您在PHP中与Celery的连接应该是 –
$exchange = 'demo'; $binding = 'demo'; $c = new Celery('localhost','/',$exchange,$binding);
注意:使用-Q选项,exchange和routing_key值与queue_name相同.
请尝试并分享结果.
关于交换和约束:
与电话服务类似,Exchange就像“电话操作符”,其唯一的工作就是通过routing_key来“直接拨打你”.
然后绑定是“您的电话号码”,其作为路由_key到您的电话.
注意:交换根据绑定(routing_key)将传入消息重定向到队列的过程是DIRECT交换类型.
AMQP还有其他类型的交换,您可以在AMQP文档中阅读.
你也可以参考这个@L_360_24@
以上是脚本宝典为你收集整理的如何在PHP中的celery-rabbitmq队列上发布任务?全部内容,希望文章能够帮你解决如何在PHP中的celery-rabbitmq队列上发布任务?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。