AMQPQueue
PHP Manual

AMQPQueue::consume

(PECL amqp >= Unknown)

AMQPQueue::consumeメッセージをキューから取得する

説明

public void AMQPQueue::consume ( callable $callback [, int $flags = AMQP_NOPARAM ] )

ブロック関数です。キューからの次のメッセージが取得できるようになったら読み込み、 そしてそれをコールバックに渡します。

パラメータ

callback

取得したメッセージを渡すコールバック関数。 パラメータとして AMQPEnvelope を受け取ることが必須で、 オプションの二番目のパラメータとしてメッセージの取得元の AMQPQueue を受け取ることもできます。

AMQPQueue::consume() は、 コールバック関数が FALSE を返すまで PHP スクリプトに処理スレッドを戻しません。

flags

フラグ AMQP_NOACK のビットマスク。

エラー / 例外

チャネルが開いていない場合に AMQPChannelException をスローします。

ブローカへの接続が途切れた場合に AMQPConnectionException をスローします。

返り値

例1 AMQPQueue::consume() の例

<?php

     
/* デフォルトの設定で接続を作成します */
     
$connection = new AMQPConnection();
     
$connection->connect();

     
$channel = new AMQPChannel($connection);

     
/* キューオブジェクトを作成します */
     
$queue = new AMQPQueue($channel);

     
// キューを宣言します
     
$queue->declare('myqueue');

     
$i 0;
     function 
processMessage($envelope$queue) {
        global 
$i;
        echo 
"Message $i: " $envelope->getBody() . "\n";
        
$i++;
        if (
$i 10) {
            
// 10 件ごとに解放します
            
return false;
        }
     }

     
// メッセージをキューから取得します
     
$queue->consume("processMessage");

     
?>


AMQPQueue
PHP Manual