您好,登錄后才能下訂單哦!
本文實例講述了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程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。