Пример #1
0
 /**
  * @param $type
  * @param InputMessage $inputMessage
  * @return InputMessageIdentifier
  */
 public function submitInput($type, InputMessage $inputMessage)
 {
     $id = Uuid::uuid4()->toString();
     $data = $inputMessage->getData();
     $this->storeInput($type, $id, $data, true);
     return new InputMessageIdentifier($id);
 }
 public function getTaskInputFromMessage(InputMessage $message)
 {
     $data = $message->getData();
     $paddedTaskClassLength = substr($data, 0, 4);
     $taskClassLength = hexdec($paddedTaskClassLength);
     $serializedParameters = substr($data, 4 + $taskClassLength);
     $parameters = unserialize($serializedParameters);
     return new TaskInput($parameters);
 }
Пример #3
0
 public function submitInput($type, InputMessage $inputMessage)
 {
     $this->declareQueue($type);
     if (is_null($this->replyQueueName)) {
         list($this->replyQueueName, , ) = $this->channel->queue_declare('', false, false, true, false);
         $replyCallbackCapture = function (AMQPMessage $amqpMessage) {
             $outputMessage = new OutputMessage($amqpMessage->body);
             $id = $amqpMessage->get('correlation_id');
             $this->outputMessages[$id] = $outputMessage;
             $channel = $amqpMessage->delivery_info['channel'];
             $channel->basic_ack($amqpMessage->delivery_info['delivery_tag']);
         };
         $this->channel->basic_qos(null, 1, null);
         $this->channel->basic_consume($this->replyQueueName, '', false, false, true, false, $replyCallbackCapture);
     }
     $id = Uuid::uuid4()->toString();
     $amqpMessage = new AMQPMessage($inputMessage->getData(), ['reply_to' => $this->replyQueueName, 'correlation_id' => $id]);
     $this->channel->basic_publish($amqpMessage, $this->getExchangeName($type));
     return new InputMessageIdentifier($id);
 }