91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python隊列RabbitMQ 使用方法實例記錄

發布時間:2020-10-17 08:20:45 來源:腳本之家 閱讀:121 作者:飛起的人生 欄目:開發技術

本文實例講述了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條消息,但是沒有消費者,所以沒有被消費

Python隊列RabbitMQ 使用方法實例記錄

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隊列RabbitMQ 使用方法實例記錄

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》、《Python+MySQL數據庫程序設計入門教程》及《Python常見數據庫操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西城区| 东安县| 油尖旺区| 义乌市| 册亨县| 绩溪县| 崇左市| 荥阳市| 贵溪市| 兴安盟| 伊金霍洛旗| 阳城县| 容城县| 乐山市| 新密市| 盘锦市| 竹北市| 上虞市| 霞浦县| 兰州市| 邳州市| 武陟县| 南通市| 林甸县| 陵川县| 柳林县| 吉木萨尔县| 松阳县| 文化| 拉萨市| 平江县| 宜城市| 宁海县| 宁波市| 永福县| 修武县| 鄂托克前旗| 海淀区| 南陵县| 深圳市| 和田县|