(PECL amqp >= Unknown)
AMQPQueue::consume — Consomme les messages depuis la file d'attente
Fonction bloquante qui récupère le prochain message depuis la file d'attente, le rendant ainsi disponible et le passe à la fonction de rappel.
callback
Une fonction de rappel qui recevra le message récupéré. La fonction doit accepter au minimum un paramètre, un objet AMQPEnvelope, et un second paramètre optionnel AMQPQueue représentant la file d'attente depuis laquelle le message est récupéré.
La méthode AMQPQueue::consume()
ne retournera pas le thread exécutant la demande au script PHP
tant que la fonction de rappel ne retournera pas FALSE
.
flags
Un masque contenant n'importe quel drapeau
AMQP_NOACK
.
Emets une exception AMQPChannelException si le canal n'est pas ouvert.
Emets une exception AMQPConnectionException si la connexion au broker a été perdue.
Exemple #1 Exemple avec AMQPQueue::consume()
<?php
/* Création d'une connexion utilisant toutes les informations d'authentification par défaut : */
$connection = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
/* création d'un objet de file d'attente */
$queue = new AMQPQueue($channel);
// Déclaration de la file d'attente
$queue->declare('myqueue');
$i = 0;
function processMessage($envelope, $queue) {
global $i;
echo "Message $i: " . $envelope->getBody() . "\n";
$i++;
if ($i > 10) {
// Bail after 10 messages
return false;
}
}
// Récupère les messages
$queue->consume("processMessage");
?>