/**
  * Execute
  *
  * @param AMQPMessage $msg The message
  * @throws \InvalidArgumentException
  *
  * @return mixed false to reject and requeue, any other value to acknowledge
  */
 public function execute(AMQPMessage $msg)
 {
     if (is_null($this->messageClassName)) {
         throw new \InvalidArgumentException('You have to specify Domain class name');
     }
     /** @var MessageInterface $message */
     $message = $this->serializer->deserialize($msg->body, $this->messageClassName, 'json');
     $this->messageDispatcher->dispatchMessage($message);
     return true;
 }
 /**
  * Execute
  * Returns: 0 - reject and requeue, 1 - remove from the queue
  * 2 - nack and requeue, -1 - reject and drop 
  * 
  *
  * @param AMQPMessage $msg The message
  * @throws \InvalidArgumentException
  *
  * @return mixed Message status
  */
 public function execute(AMQPMessage $msg)
 {
     if (is_null($this->messageClassName)) {
         throw new \InvalidArgumentException('You have to specify Domain class name');
     }
     /** @var MessageInterface $message */
     try {
         $message = $this->serializer->deserialize($msg->body, $this->messageClassName, 'json');
         $this->messageDispatcher->dispatchMessage($message);
     } catch (ResponseException $e) {
         if ($e->stopConsuming()) {
             $msg->delivery_info['channel']->basic_cancel($msg->delivery_info['consumer_tag']);
         }
         return $e->getFlag();
     }
     return true;
 }