Esempio n. 1
0
 public function publish(array $message, array $options = [])
 {
     $message = new Message(time(), $message, []);
     $this->dispatcher->dispatch(Events::Message($this->name), new MessageEvent($this->name, $message));
     $context = ['MessageId' => $message->getId()];
     $this->log(200, 'Message received and dispatched on Sync Queue', $context);
 }
Esempio n. 2
0
 /**
  * {@inheritDoc}
  */
 public function receive(array $options = [])
 {
     $options = $this->mergeOptions($options);
     if (!$this->queueExists()) {
         $this->create();
     }
     $messages = $this->ironmq->reserveMessages($this->getNameWithPrefix(), $options['messages_to_receive'], $options['message_timeout'], $options['receive_wait_time']);
     if (!is_array($messages)) {
         $this->log(200, "No messages found in queue.");
         return [];
     }
     // Convert to Message Class
     foreach ($messages as &$message) {
         $id = $message->id;
         $body = json_decode($message->body, true);
         $metadata = ['reserved_count' => $message->reserved_count, 'reservation_id' => $message->reservation_id];
         unset($body['_qpush_queue']);
         $message = new Message($id, json_encode($body), $metadata);
         $this->log(200, "Message has been received.", ['message_id' => $id]);
     }
     $this->reservedMessages = array_combine(array_values(array_map(function (Message $message) {
         return $message->getId();
     }, $messages)), $messages);
     return $messages;
 }