/**
  * @param $queueName
  * @param $message
  */
 public function consume($queueName, $message)
 {
     if ($queueName === $this->eventQueueName) {
         $this->eventConsumer->consume($message);
     } elseif ($queueName === $this->commandQueueName) {
         $this->commandConsumer->consume($message);
     }
     $this->log('debug', 'Consumed ' . $queueName . '.');
 }
 public function execute(AMQPMessage $msg)
 {
     try {
         $this->consumer->consume($msg->body);
         $this->eventDispatcher->dispatch(Events::MESSAGE_CONSUMED, new MessageConsumed($msg));
         return true;
     } catch (Exception $exception) {
         $this->eventDispatcher->dispatch(Events::MESSAGE_CONSUMPTION_FAILED, new MessageConsumptionFailed($msg, $exception));
         return false;
     }
 }
Example #3
0
 /**
  * Consume a message and make sure we log errors.
  *
  * @param string                     $queueName
  * @param mixed                      $message
  * @param SerializedEnvelopeConsumer $consumer
  *
  * @throws \Exception
  */
 private function doConsume($queueName, $message, SerializedEnvelopeConsumer $consumer = null)
 {
     if ($consumer === null) {
         $exceptionMessage = sprintf('No consumer was found for queue named "%s"', $queueName);
         $this->log('alert', $exceptionMessage, ['message' => $message]);
         throw new \RuntimeException($exceptionMessage);
     }
     try {
         $consumer->consume($message);
     } catch (\Exception $e) {
         $this->log('error', sprintf('Tried to handle message from queue %s but failed', $queueName), ['exception' => $e, 'message' => $message]);
         throw $e;
     }
 }