/**
  * @param InputInterface  $input
  * @param OutputInterface $output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $queueName = $input->getArgument("queueName");
     /* Listen to queue */
     $broker = new Broker();
     $broker->listenToQueue($queueName, array("\\RabbitManager\\Handlers\\" . $queueName . "Handler"));
 }
 /**
  *
  */
 public function testBroker()
 {
     $broker = new Broker();
     $msg = new Message('TestQueue', array("test_param" => "I am a test param", "test_mesage" => "I am a test message"));
     $broker->sendMessage($msg);
     $messageCount = $broker->getStatus($msg) + 1;
     echo "Messages in queue : " . $messageCount . "\n";
 }
 /**
  * @param InputInterface  $input
  * @param OutputInterface $output
  * @return bool
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $queueName = $input->getArgument("queueName");
     $message = $input->getArgument("message");
     $broker = new Broker();
     /* Makes the AMPQ message */
     $msg = new Message($queueName, ["message" => $message]);
     /* Sends the message */
     $broker->sendMessage($msg);
     $output->writeln('<info>Successfully submitted in queue</info>');
 }
Beispiel #4
0
 /**
  * Starts to listen a queue for incoming messages.
  * @param string $queueName The AMQP queue
  * @param array  $handlers  Array of handler class instances
  * @return bool
  */
 public function listenToQueue($queueName, array $handlers)
 {
     $this->queueName = $queueName;
     /* Look for handlers */
     $handlersMap = array();
     foreach ($handlers as $handlerClassPath) {
         if (!class_exists($handlerClassPath)) {
             $handlerClassPath = "RabbitManager\\Handlers\\{$handlerClassPath}";
             if (!class_exists($handlerClassPath)) {
                 $this->logger->addError("Class {$handlerClassPath} was not found!");
                 return false;
             }
         }
         $handlerOb = new $handlerClassPath();
         $classPathParts = explode("\\", $handlerClassPath);
         $handlersMap[$classPathParts[count($classPathParts) - 1]] = $handlerOb;
     }
     /* Create queue */
     $this->channel->queue_declare($queueName, false, true, false, false);
     /* Start consuming */
     $this->channel->basic_qos(null, 1, null);
     $this->channel->basic_consume($queueName, '', false, false, false, false, function ($amqpMsg) use($handlersMap) {
         $msg = Message::fromAMQPMessage($amqpMsg);
         Broker::handleMessage($msg, $handlersMap);
     });
     $this->logger->addInfo("Starting consumption of queue {$queueName}");
     /* Iterate until ctrl+c is received... */
     while (count($this->channel->callbacks)) {
         $this->channel->wait();
     }
 }