AMQPQueue
PHP Manual

AMQPQueue::ack

(PECL amqp >= Unknown)

AMQPQueue::ackПодтвердить получение сообщения

Описание

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

Этот метод позволяет получить подтверждение для сообщения, что оно извлечено без флага AMQP_AUTOACK через AMQPQueue::get() или AMQPQueue::consume().

Список параметров

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