示例#1
0
 /**
  * @inheritdoc
  *
  * @throws \InvalidArgumentException
  * @throws InvalidMessageException
  * @throws QueueAccessException
  */
 public function deleteMessage($queueName, $message)
 {
     if (empty($queueName)) {
         throw new \InvalidArgumentException('Queue name empty or not defined.');
     }
     if (empty($message)) {
         throw new InvalidMessageException($message, 'Message empty or not defined.');
     }
     if (!is_array($message)) {
         throw new InvalidMessageException($message, 'Message must be an array.');
     }
     if (!isset($message['ReceiptHandle'])) {
         throw new InvalidMessageException($message, 'ReceiptHandle not found in message.');
     }
     if (!isset($message['priority'])) {
         throw new InvalidMessageException($message, 'Priority not found in message.');
     }
     $priority = $this->priorityHandler->getPriorityByLevel($message['priority']);
     try {
         $queueUrl = $this->sqsClient->getQueueUrl(['QueueName' => $this->getQueueNameWithPrioritySuffix($queueName, $priority)])->get('QueueUrl');
         $this->sqsClient->deleteMessage(['QueueUrl' => $queueUrl, 'ReceiptHandle' => $message['ReceiptHandle']]);
     } catch (SqsException $e) {
         throw new QueueAccessException('Cannot delete message from queue.', 0, $e);
     }
     return $this;
 }
 /**
  * @inheritdoc
  *
  * @throws \InvalidArgumentException
  * @throws InvalidMessageException
  * @throws QueueAccessException
  */
 public function deleteMessage($queueName, $message)
 {
     if (empty($queueName)) {
         throw new \InvalidArgumentException('Queue name empty or not defined.');
     }
     if (empty($message)) {
         throw new InvalidMessageException($message, 'Message empty or not defined.');
     }
     if (!is_array($message)) {
         throw new InvalidMessageException($message, 'Message must be an array.');
     }
     if (!isset($message['id'])) {
         throw new InvalidMessageException($message, 'Message id not found in message.');
     }
     if (!isset($message['priority'])) {
         throw new InvalidMessageException($message, 'Message priority not found in message.');
     }
     $priority = $this->priorityHandler->getPriorityByLevel($message['priority']);
     if (!$this->fs->exists($this->getQueuePath($queueName, $priority))) {
         throw new QueueAccessException("Queue " . $queueName . " doesn't exist, please create it before use it.");
     }
     $this->deleteMessageLock($queueName, $message, $priority);
     return $this;
 }