Python队列RabbitMQ 使用方法实例记录
2019-08-05 10:39
141 查看
本文实例讲述了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.创建消费者,消费信息
<?php set_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程序设计有所帮助。
您可能感兴趣的文章:
- 利用Python学习RabbitMQ消息队列
- Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
- 详解Python操作RabbitMQ服务器消息队列的远程结果返回
- python队列通信:rabbitMQ的使用(实例讲解)
- Python操作RabbitMQ服务器实现消息队列的路由功能
- 利用Python操作消息队列RabbitMQ的方法教程
- Python RabbitMQ消息队列实现rpc
- python实现RabbitMQ的消息队列的示例代码
- rabbitmq(中间消息代理)在python中的使用详解
- python RabbitMQ 使用详细介绍(小结)
- Python操作rabbitMQ的示例代码
相关文章推荐
- python使用rabbitmq实例二,工作队列
- python队列通信:rabbitMQ的使用(实例讲解)
- python使用rabbitmq实例二,工作队列 (2)
- python使用rabbitmq实例二,工作队列
- Python使用list的append和pop方法创建堆栈和队列实例代码
- rabbitmq工作队列实现高性能任务的负载分发[python实例] 推荐
- python使用rabbitmq实例六,远程结果返回(6)
- python 下类使用记录小实例
- python模块restful使用方法实例
- python使用xlrd实现检索excel中某列含有指定字符串记录的方法
- Python·Jupyter Notebook各种使用方法记录·持续更新
- Python中的__new__()方法的使用实例
- python使用rabbitmq实例五,路由键模糊匹配(5)
- go语言日志记录库简单使用方法实例分析
- 实例讲解Python设计模式编程之工厂方法模式的使用
- python使用rabbitmq实例五,路由键模糊匹配
- 基于Python语言使用RabbitMQ消息队列(一)
- Python·Jupyter Notebook各种使用方法记录·持续更新
- Python·Jupyter Notebook各种使用方法记录·持续更新
- android数据库存储方法(一)---------------SharedPreferences(实例)记录应用程序使用次数(一)