Python队列RabbitMQ 使用方法实例记录
Python  /  管理员 发布于 6年前   208
本文实例讲述了Python队列RabbitMQ 使用方法。分享给大家供大家参考,具体如下:
目前的exchange的路由策略是:每个需要队列的服务独享一个队列(queue),消费者(consumer)采用ACK自动应答模式处理队列消息。
如果需要新增一个队列服务,需要做如下开发步骤:
1.创建队列,发送消息
<?php$routingkey = 'key';//设置你的连接$conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest');$conn = new AMQPConnection($conn_args);if ($conn->connect()) { echo "Established a connection to the broker \n";} else { echo "Cannot connect to the broker \n ";}//你的消息$message = json_encode(array('Hello World3!', 'php3', 'c++3:'));//创建channel$channel = new AMQPChannel($conn);//创建exchange$ex = new AMQPExchange($channel);$ex->setName('exchange2'); //创建名字$ex->setType(AMQP_EX_TYPE_DIRECT);$ex->setFlags(AMQP_DURABLE);echo "exchange2 status:" . $ex->declareExchange();echo "\n";for ($i = 0; $i < 100; $i++) { if ($routingkey == 'key2') { $routingkey = 'key'; } else { $routingkey = 'key2'; } $ex->publish($message, $routingkey);}
这样就产生了50条消息,但是没有消费者,所以没有被消费
2.创建消费者,消费信息
<?phpset_time_limit(0);$e_name = 'exchange2'; //交换机名$q_name = 'queue2'; //队列名$k_route = 'key2'; //路由key //连接RabbitMQ$conn_args = array('host' => '127.0.0.1', 'port' => '5672', 'login' => 'guest', 'password' => 'guest', 'vhost' => '/');$conn = new AMQPConnection($conn_args);$conn->connect();$channel = new AMQPChannel($conn); //创建交换机$ex = new AMQPExchange($channel);$ex->setName($e_name);$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型$ex->setFlags(AMQP_DURABLE); //持久化echo "Exchange Status:" . $ex->declareExchange() . "\n";//创建队列$q = new AMQPQueue($channel);$q->setName($q_name);$q->setFlags(AMQP_DURABLE); //持久化 //绑定交换机与队列,并指定路由键echo 'Queue Bind: ' . $q->bind($e_name, $k_route) . "\n"; //阻塞模式接收消息echo "Message:\n";$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答 $conn->disconnect();/** * 消费回调函数 * 处理消息 */function processMessage($envelope, $queue) { var_dump($envelope->getRoutingKey()); $msg = $envelope->getBody(); echo $msg . "\n"; //处理消息}
运行之后
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号