AMQPQueue::ack

(PECL amqp >= Unknown)

AMQPQueue::ackAccuse réception d'un message

Description

public bool AMQPQueue::ack ( int $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().

Liste de paramètres

delivery_tag

Le drapeau du message délivré.

flags

Le seul drapeau valide qui peut être passé est AMQP_MULTIPLE.

Erreurs / Exceptions

Emets une exception AMQPChannelException si le canal n'est pas ouvert.

Emets une exception AMQPConnectionException si la connexion au broker a été perdue.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

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

?>

LoadingChargement en cours