AMQPQueue
PHP Manual

AMQPQueue::ack

(PECL amqp >= Unknown)

AMQPQueue::ackメッセージの受信を受け付ける

説明

public bool AMQPQueue::ack ( int $delivery_tag [, int $flags = AMQP_NOPARAM ] )

AMQPQueue::get() あるいは AMQPQueue::consume()AMQP_AUTOACK フラグなしで取得したメッセージの受信を認めます。

パラメータ

delivery_tag

受信を認めるメッセージ配送タグ。

flags

渡せるフラグは AMQP_MULTIPLE のみです。

エラー / 例外

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

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

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 AMQPQueue::ack()AMQPQueue::get() の例

<?php

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

$channel = new AMQPChannel($connection);

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

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

// 次のメッセージを取得しますが、配送済みにはしません
$message $queue->get(AMQP_NOPARAM);

echo 
$message['msg'];

// メッセージを受信したことを知らせます
$queue->ack($message['delivery_tag']);

?>

例2 AMQPQueue::ack()AMQPQueue::consume() の例

<?php

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

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

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

$options = array(
    
'min' => 1,
    
'max' => 10,
    
'ack' => false
);

// メッセージを取得しますが、配送済みにはしません
$messages $queue->consume($options);

foreach (
$messages as $message) {
    echo 
$message['message_body'];
    
// メッセージを受信したことを知らせます
    
$queue->ack($message['delivery_tag']);
}

?>


AMQPQueue
PHP Manual