/** * @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); }
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); }