Esempio n. 1
0
 /**
  * Creates wait queue
  *
  * @return AMQPQueue
  */
 private function getQueueEvent(Amqp\AmqpEvent $event)
 {
     $properties = $event->getHeader("x-command-queue-get");
     if ($properties && ($flags = $properties["flags"]) && ($name = $properties["name"])) {
         $queue = $this->broker->queue($flags, $name);
         $envelope = $queue->get();
         return $envelope ? new Amqp\ConsumeEvent($envelope, $queue) : null;
     }
 }
Esempio n. 2
0
 /**
  * On dispatch event listener - called on any event
  *
  * @param AmqpEvent $event
  * @return void
  */
 public function postpone(Amqp\AmqpEvent $event)
 {
     // Checks if message was expired or retried too many times
     if ($event->getHeader("x-retry-count", 0) < $this->getRetryCount()) {
         $event->addHeader("x-retry-count", $event->getHeader("x-retry-count", 0) + 1);
         $event->removeHeader("x-death");
         $exchange = $this->getExchange($event->getExchangeName(), $event->getRoutingKey());
         $exchange->publish($event->getBody(), $event->getRoutingKey(), AMQP_NOPARAM, $event->attributes());
         return true;
     }
     return false;
 }
Esempio n. 3
0
 /**
  * On dispatch event listener - called on any event
  *
  * @param Event $event
  * @param string $eventName
  * @return void
  */
 public function deadLetter(Amqp\AmqpEvent $event, \Exception $exception)
 {
     $queue = $this->getQueue($event->getExchangeName());
     $exchange = $this->getExchange($event->getExchangeName());
     $queue->bind($exchange->getName(), $event->getRoutingKey());
     $exchange->publish($event->getBody(), $event->getRoutingKey(), AMQP_MANDATORY, $event->attributes());
 }
Esempio n. 4
0
 private function display(AmqpEvent $event, $eventName, $methodName, $color = "1;32")
 {
     sprintf("[%sm %s@%s [%s] %s: %s \n", $color, $event->getExchangeName(), $event->getRoutingKey(), $eventName, $methodName, $event->getBody());
 }