(PECL amqp >= Unknown)
AMQPQueue::ack — Reconoce la recepción de un mensaje
$delivery_tag
[, int $flags
= AMQP_NOPARAM
] )
Éste metodo permite reconocer la recepción de un mensaje que es recuperado sin la bandera AMQP_NOACK
a través de AMQPQueue::get() o AMQPQueue::consume().
delivery_tag
La etiqueta de mensaje entregado del cual reconoce la recepción.
flags
La unica bandera valida que puede ser pasada es AMQP_MULTIPLE
.
Lanza una AMQPChannelException si el canal no está abierto.
Lanza una AMQPConnectionException si se perdió la conexión con el corredor.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 AMQPQueue::ack() Ejemplo con AMQPQueue::get()
<?php
/* Crear una conexión con todas las credenciales por defecto: */
$connection = new AMQPConnection();
$connection->connect();
/* crear un objeto de cola */
$queue = new AMQPQueue($channel);
//declarar la cola
$queue->declare('myqueue');
//obtener el siguiente mensaje, pero no lo marca como entregado
$message = $queue->get(AMQP_NOPARAM);
echo $message['msg'];
//reconocer que el mensaje fue recibido
$queue->ack($message['delivery_tag']);
?>
Ejemplo #2 AMQPQueue::ack() Ejemplo con AMQPQueue::consume()
<?php
/* Crear una conexión con todas las credenciales por defecto: */
$connection = new AMQPConnection();
$connection->connect();
/* crear un objeto de cola */
$queue = new AMQPQueue($connection);
//declarar la cola
$queue->declare('myqueue');
$options = array(
'min' => 1,
'max' => 10,
'ack' => false
);
//obtener el siguiente mensaje, pero no lo marca como entregado
$messages = $queue->consume($options);
foreach ($messages as $message) {
echo $message['message_body'];
//reconocer que el mensaje fue recibido
$queue->ack($message['delivery_tag']);
}
?>