AMQPQueue::ack

(Информация о версии неизвестна, возможно, только в SVN)

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

Описание

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

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

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

delivery_tag

Тег доставки сообщения, который подтверждает получение.

flags

Только допустимый флаг, который может быть передан в AMQP_MULTIPLE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования AMQPQueue::ack() с AMQPQueue::get()

<?php

/* создание соединения, используя все учетные данные по умолчанию: */
$connection = new AMQPConnection();
$connection->connect();

/* создание очереди */
$queue = new AMQPQueue($connection);

//объявление очереди
$queue->declare('myqueue');

//получение следующего сообщения, но не отмечая как доставленное
$message $queue->get(AMQP_NOACK);

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']);
}

?>


Участник рейтинга Тэглайн 2010