SAMConnection::receive

(PECL sam >= 0.1.0)

SAMConnection::receive Reçoit un message depuis une file d'attente ou d'une souscription

Description

SAMMessage SAMConnection::receive ( string $target [, array $properties ] )

Liste de paramètres

target

L'identité de la file d'attente, du sujet ou de la souscription depuis lequel le message est reçu.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération de réception :

Nom de la propriété Valeurs possibles
SAM_CORRELID Utilisé pour demander la réception d'un message en se basant sur l'identifiant de corrélation du message.
SAM_MESSAGEID Utilisé pour demander la réception d'un message en se basant sur l'identifiant du message.
SAM_WAIT Délai d'attente maximal en millisecondes permettant de contrôler le temps d'attente de réception du message avant de retourner une erreur si aucun message n'est disponible sur la file d'attente ou sur le sujet. La valeur par défaut est 0, ce qui signifie que le délai est infini et doit donc être utilisée avec précaution car la demande attendra jusqu'au temps limite d'exécution PHP si aucun message n'est disponible.

Valeurs de retour

Cette méthode retourne un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple #1 Réception d'un message depuis la file d'attente

<?php
$msg = $conn->receive('queue://receive/test');

if (!$msg) {
  // La réception a échoué !
  echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>

Exemple #2 Réception d'un message depuis la file d'attente avec des options

<?php

$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));

?>

Exemple #3 Réception d'un message depuis une souscription

<?php
$msg = $conn->receive($subscriptionName);

if (!$msg) {
  // La réception a échoué !
  echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>

Noter que $subscriptionName est un identifiant de souscription retourné lors d'un précédent appel à une souscription.

Voir aussi

LoadingChargement en cours