Exemplo n.º 1
0
 /**
  * Find queue name where to route message
  *
  * @param Oggetto_Messenger_Model_Message_Interface $message Message
  * @return string|null
  */
 public function findMessageQueue(Oggetto_Messenger_Model_Message_Interface $message)
 {
     foreach ($this->_map as $_map) {
         if ($message->matchesCriterion($_map['criterion'])) {
             return $_map['queue'];
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Build message from event
  *
  * @param Oggetto_Messenger_Model_Event             $event   Event
  * @param Oggetto_Messenger_Model_Message_Interface $message Message
  *
  * @return Oggetto_Messenger_Model_Message_Interface
  */
 public function buildMessage(Oggetto_Messenger_Model_Event $event, Oggetto_Messenger_Model_Message_Interface $message)
 {
     $message->setMeta(array('_class' => 'event', 'name' => $event->getName()));
     $message->setData($event->getData());
     return $message;
 }
Exemplo n.º 3
0
 /**
  * Send message to queue
  *
  * @param Oggetto_Messenger_Model_Message_Interface $message Message
  * @param string                                    $queue   Queue
  *
  * @return void
  */
 private function _sendMessage(Oggetto_Messenger_Model_Message_Interface $message, $queue)
 {
     $rabbitMessage = new AMQPMessage($message->toString(), array('delivery_mode' => 2));
     $this->_logger->info("Sending message to queue '{$queue}': {$rabbitMessage->body}");
     $transport = new Varien_Object();
     Mage::dispatchEvent('rabbitmq_publish_before', ['message' => $rabbitMessage, 'transport' => $transport]);
     $this->_getChannel()->basic_publish($rabbitMessage, '', $queue);
     Mage::dispatchEvent('rabbitmq_publish_after', ['message' => $rabbitMessage, 'transport' => $transport]);
 }
Exemplo n.º 4
0
 /**
  * Build event from message
  *
  * @param Oggetto_Messenger_Model_Message_Interface $message Message
  * @return Oggetto_Messenger_Model_Event
  */
 public function buildEvent(Oggetto_Messenger_Model_Message_Interface $message)
 {
     $meta = new Varien_Object((array) $message->getMeta());
     return Mage::getModel('messenger/event')->setName($meta->getName())->setData((array) $message->getData());
 }