/**
  * {@inheritdoc}
  */
 public function handle(MessageInterface $message, EventDispatcherInterface $dispatcher)
 {
     $event = new ConsumerEvent($message);
     try {
         $message->setStartedAt(new \DateTime());
         $message->setState(MessageInterface::STATE_IN_PROGRESS);
         $this->messageManager->save($message);
         $dispatcher->dispatch($message->getType(), $event);
         $message->setCompletedAt(new \DateTime());
         $message->setState(MessageInterface::STATE_DONE);
         $this->messageManager->save($message);
     } catch (\Exception $e) {
         $message->setCompletedAt(new \DateTime());
         $message->setState(MessageInterface::STATE_ERROR);
         $this->messageManager->save($message);
         throw new HandlingException("Error while handling a message", 0, $e);
     }
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function handle(MessageInterface $message, EventDispatcherInterface $dispatcher)
 {
     $event = new ConsumerEvent($message);
     try {
         $message->setStartedAt(new \DateTime());
         $message->setState(MessageInterface::STATE_IN_PROGRESS);
         $dispatcher->dispatch($message->getType(), $event);
         $message->setCompletedAt(new \DateTime());
         $message->setState(MessageInterface::STATE_DONE);
         $this->getTube($this->tube)->delete($message->getValue('Job'));
         return $event->getReturnInfo();
     } catch (\Exception $e) {
         $message->setCompletedAt(new \DateTime());
         $message->setState(MessageInterface::STATE_ERROR);
         $this->getTube($this->tube)->release($message->getValue('Job'));
         throw new HandlingException('Error while handling a message', 0, $e);
     }
 }