예제 #1
0
 /**
  * @param Message $message
  *
  * @return bool
  */
 private function closeSentMessage(Message $message)
 {
     $queue = $message->getQueue();
     if (empty($queue)) {
         return false;
     }
     $allSent = true;
     foreach ($queue as $queueItem) {
         if (null === $queueItem->getSentAt()) {
             $allSent = false;
             break;
         }
     }
     if ($this->isVerbose()) {
         $messageAsString = $this->messageToString($message, count($queue));
         if ($allSent) {
             $this->logger->info('Message to be closed: ' . $messageAsString);
         } else {
             $this->logger->info('Message is still being sent: ' . $messageAsString);
         }
     }
     if ($allSent) {
         $this->messageRepository->closeMessage($message);
         return true;
     }
     return false;
 }