(PECL amqp >= Unknown)
AMQPQueue::consume — メッセージをキューから取得する
ブロック関数です。キューからの次のメッセージが取得できるようになったら読み込み、 そしてそれをコールバックに渡します。
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");
?>