Exemple #1
0
 public function dequeue()
 {
     $rawMsg = $this->queue->reserveMessage($this->queueName, $this->timeout);
     if (!$rawMsg) {
         return false;
     }
     return array($rawMsg->body, $rawMsg->id, ['reservation_id' => $rawMsg->reservation_id]);
 }
 /**
  * @inheritDoc
  */
 public function dequeue($queueName)
 {
     $job = $this->iron->reserveMessage($queueName);
     if ($job) {
         $wrapped = $this->unserialize($job->body);
         $message = new DefaultEnvelope($wrapped->unwrap(), $job->reserved_count);
         $env = new IronEnvelope($job->id, $message, $job->reservation_id);
         return $env;
     }
     return null;
 }
 public function testEmptyIron()
 {
     $iron_mq = new IronMQ();
     $i = 0;
     $message = $iron_mq->reserveMessage('MyQueue');
     while ($message !== null) {
         echo "{$i} th message: " . $message->body . "\n";
         $iron_mq->deleteMessage('MyQueue', $message->id, $message->reservation_id);
         //'4a309ef65422643bd14383dee06bed29');
         $i++;
         $message = $iron_mq->reserveMessage('MyQueue');
     }
 }
$ironMQ->createQueue($queueName, array('message_expiration' => 3600));
// Post a message to a queue
$singleMessageResponse = $ironMQ->postMessage($queueName, 'This is a sample message');
var_dump($singleMessageResponse);
// Post multiple messages to a single queue
$multiMessageResponse = $ironMQ->postMessages($queueName, array('Message 1', 'Message 2'));
var_dump($multiMessageResponse);
// Delete these messages one at a time
$ironMQ->deleteMessage($queueName, $singleMessageResponse->id);
foreach ($multiMessageResponse->ids as $messageID) {
    $ironMQ->deleteMessage($queueName, $messageID);
}
// Put a new message in the queue for us to work with
$ironMQ->postMessage($queueName, 'This is a sample message');
// Retrieve a message from a queue
$message = $ironMQ->reserveMessage($queueName);
var_dump($message);
// Touch a message to keep it around longer, in case you are nearing the timeout
echo 'Touching a message';
$reservationID = $ironMQ->touchMessage($queueName, $message->id, $message->reservation_id, IronMQ::GET_MESSAGE_TIMEOUT);
var_dump($reservationID);
// The reservation ID changes after touching, so make sure to update the message
$message->reservation_id = $reservationID->reservation_id;
// Delete a message when you are finished. Reserved messages MUST pass the reservation ID
$deleteResult = $ironMQ->deleteMessage($queueName, $message->id, $message->reservation_id);
var_dump($deleteResult);
// Put some new messages in the queue for us to work with
$ironMQ->postMessage($queueName, 'This is a sample message');
$ironMQ->postMessage($queueName, 'This is a sample message2');
$ironMQ->postMessage($queueName, 'This is a sample message3');
$ironMQ->postMessage($queueName, 'This is a sample message4');