Пример #1
0
 /**
  * Delete a message from the queue
  *
  * Return true if the message is deleted, false if the deletion is
  * unsuccessful.
  *
  * @param  QueueInterface $queue
  * @param  MessageInterface $message
  * @return boolean
  * @throws Exception\QueueNotFoundException
  */
 public function deleteMessage(QueueInterface $queue, MessageInterface $message)
 {
     if (!$this->queueExists($queue->getName())) {
         throw new Exception\QueueNotFoundException('Queue does not exist:' . $queue->getName());
     }
     $info = $this->getMessageInfo($queue, $message);
     $messageId = $info['messageId'];
     // load the queue
     $queue =& $this->data[$queue->getName()];
     if (!array_key_exists($messageId, $queue)) {
         return false;
     }
     if (!empty($info['options'][SendParametersInterface::REPEATING_INTERVAL])) {
         $microtime = (int) microtime(true);
         $queue[$messageId]['schedule'] = $microtime + $info['options'][SendParametersInterface::REPEATING_INTERVAL];
         $queue[$messageId]['handle'] = null;
         $queue[$messageId]['timeout'] = null;
     } else {
         unset($queue[$messageId]);
     }
     return true;
 }
Пример #2
0
 /**
  * @param Queue $queue
  * @param MessageInterface $message
  * @return void
  */
 protected function cleanMessageInfo(Queue $queue, MessageInterface $message)
 {
     $metadatumKey = $queue->getOptions()->getMessageMetadatumKey();
     if ($message->getMetadata($metadatumKey)) {
         $message->setMetadata($metadatumKey, null);
     }
 }