(PECL amqp >= Unknown)
AMQPQueue::ack — Accuse réception d'un message
$delivery_tag
[, int $flags
= AMQP_NOPARAM
] )
Cette méthode autorise un accusé de réception d'un message
qui n'a pas été reçu avec le drapeau AMQP_AUTOACK
via la méthode AMQPQueue::get() ou
la méthode AMQPQueue::consume().
delivery_tag
Le drapeau du message délivré.
flags
Le seul drapeau valide qui peut être passé est
AMQP_MULTIPLE
.
Emets une exception AMQPChannelException si le canal n'est pas ouvert.
Emets une exception AMQPConnectionException si la connexion au broker a été perdue.
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemple #1 AMQPQueue::ack() example with AMQPQueue::get()
<?php
/* Crée une connexion en utilisant les identifiants par défaut : */
$connection = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
/* Crée un objet de file d'attente */
$queue = new AMQPQueue($channel);
// Déclare la file d'attente
$queue->declare('myqueue');
// Récupère le prochain message, mais ne le marque pas comme délivré
$message = $queue->get(AMQP_NOPARAM);
echo $message['msg'];
// Accuse réception du message
$queue->ack($message['delivery_tag']);
?>
Exemple #2 Exemple avec AMQPQueue::ack() et AMQPQueue::consume()
<?php
/* Crée une connexion en utilisant les identifiants de connexion par défaut : */
$connection = new AMQPConnection();
$connection->connect();
/* Création d'un objet de file d'attente */
$queue = new AMQPQueue($connection);
// déclaration de la file d'attente
$queue->declare('myqueue');
$options = array(
'min' => 1,
'max' => 10,
'ack' => false
);
// récupère les messages, sans les marquer comme délivrés
$messages = $queue->consume($options);
foreach ($messages as $message) {
echo $message['message_body'];
// accusé de réception du message, tel que reçu
$queue->ack($message['delivery_tag']);
}
?>