RabbitMQのメッセージキューを使用してPHP

1、インストールAMQPは拡大し、インストールプロセスを

2、ツールキットのphp-amqplibをダウンロード 

作曲のphp-amqplib / PHP-amqplibが必要です
 
図3に示すように、コードは以下の
[消費者]のニュース
。1 <?PHP 
 2  // 設定情報
。3  $ conn_args = アレイ4      'ホスト' => '127.0.0.1'、
 。5      'ポート' => '5672'、  
 6      'ログイン' => 'ZCW'、  
 7      「パスワード'=>' 123456 ' 
 8      'バーチャルホスト'=>' /' 
 9。 );   
 10  $ e_name =' EXCHANGE1 '; //は、スイッチ名
11。 $ q_name =' QUEUE1 '; // キューの名前
12は、 $ k_route =' route1の' ;// ルート設定キー 
 13   
14  //接続とチャンネルの作成
15 $ CONN = 新しい AMQPConnection($ conn_args )。   
16  もし(!$ CONN - > 接続()){   
 17      、ダイ( "ブローカーに接続できません\ n個!" );   
18  }   
 19  $チャネル = 新しい AMQPChannel($ CONN )。   
20   
21  // 创建交换机     
22  $の元 = 新しい AMQPExchange($チャンネル);   
23  $の元 - >のsetName($ e_name )。 
24  $の元 - > はsetType(AMQP_EX_TYPE_DIRECT); // ダイレクトタイプ(一般的に使用されるファンアウト、直接、トピック、ヘッダ)   
25  $ EX - >でsetFlags(AMQP_DURABLEは); // 持続 
 26は、ある 
27     
28  キュー作成//     
29  $ Q = 新新 AMQPQueue($チャンネル); 
 30  $ Q - >のsetName($のq_name );   
 31である $ Q - >でsetFlags(AMQP_DURABLE); // 永続   
32  
33である $合計 = $ Q - > declareQueue(); // メッセージ番号の全てを取得
 34は、  
35  / /スイッチと結合キューと指定されたルートキー
36  $ Q - >バインド(e_name $$ k_route ); 
 37 [   
38は、 // 1、ブロッキングメッセージ受信モード。
39  ながら){ 
 40      $ Q - > 'processMessage'(消費);   
 41れる     // $ Q->)AMQP_AUTOACK、 'processMessage'(消費; //自動ACK応答   
42  } 
 43が 
44であり、 // 2の非ブロッキングモードと、メッセージが定期的に呼び出し受信することができる
 45  //(合計$){IF
 46は //のために{($ I = 0; $ I ++; $ Iは$合計<)
 47  // $ $ = Q-エンベロープ> GET();
 48  // IF($エンベロープ){
 49  // envelope- $ $ MSG => getBody(); 
 50 //エコーの$ MSG "\ n" ; // 処理メッセージ 
 51である // $ Q-> ACK($ envelope-> getDeliveryTag()); //手動変速ACK応答
 52  //}
 53  } //
 54  // } 
55  
56である $コネチカット - > 切断();   
 57れている  
58  / * *
 59  *消費コールバック関数
 60  *プロセスメッセージ
 61である  * /  
62である 関数 processMessage($エンベロープ$キュー){ 
 63が     $ MSG = $エンベロープ - > )getBody( ; 
 64      エコー の$ MSG "\ N-"; // プロセスのメッセージ
65      $キュー - > ACK($封筒 - > getDeliveryTag()); // 手動でACK応答送信
66  }
 67 >?

 

[製造ニュースサービス

。1 <?PHP
 2  // 設定情報
。3  $ conn_args = アレイ4      'ホスト' => '127.0.0.1'、  
 。5      'ポート' => '5672'、  
 6      'ログイン' => 'ZCW'、
 7      「パスワード'=>' 123456 '
 8      'バーチャルホスト'=>' /' 
 9。 );   
 10  $ e_name =' EXCHANGE1 '; //は、スイッチ名 
 11。 // $のq_name =' QUEUE1「; //キュー名なしの
12である $ k_route = 'route1の';// ルート設定キー
 13   
14  //接続を作成し、チャンネル
15  $でCONN = 新新AMQPConnection($ conn_args );   
 16  IF(!$コネチカット - > 接続()){   
 17。     ダイ( "ブローカ\ N-に接続することはできません!" );   
 18である }   
 。19  $チャンネル = 新新 AMQPChannel($コネティカット州);   
 20がある // オブジェクトの作成に切り替える     
21は $ EX = 新新 AMQPExchange($チャンネル);   
 22は、 $ EX - >のsetName($ e_name );   
 23はある // メッセージ送信 
 24  // $チャネル- > StartTransactionメソッドを(); //トランザクション開始   
25 以下のために$ I ; = 0 $ iが <5; ++ $ I {)
 26     $のEX - >(公開$メッセージ$のk_routeを) "\ n" ;
27  }
 28   
29  // $チャネル- >のcommitTransaction(); //提交事务
30   
31  $でCONN - > 切断();
32  
33?>

 

 

おすすめ

転載: www.cnblogs.com/guliang/p/11743229.html