/** * 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; }