/** * @param LogMessage|WorkflowMessage $message * @param WorkflowEngine $workflowEngine */ public function receiveMessage($message, WorkflowEngine $workflowEngine) { if (!$this->taskList->isStarted()) { parent::receiveMessage($message, $workflowEngine); return; } $this->assertTaskEntryExists($message->processTaskListPosition()); $taskListEntry = $this->taskList->getTaskListEntryAtPosition($message->processTaskListPosition()); if ($message instanceof WorkflowMessage) { if (!MessageNameUtils::isProcessingEvent($message->messageName())) { $this->receiveMessage(LogMessage::logWrongMessageReceivedFor($taskListEntry->task(), $taskListEntry->taskListPosition(), $message), $workflowEngine); return; } $this->recordThat(MultiPerformTaskSucceed::at($taskListEntry->taskListPosition())); } if ($message instanceof LogMessage) { $this->recordThat(LogMessageReceived::record($message)); if ($message->isError()) { $this->recordThat(MultiPerformTaskFailed::at($taskListEntry->taskListPosition())); } } $this->checkFinished($taskListEntry); }
/** * @param LogMessageReceived $event */ protected function whenLogMessageReceived(LogMessageReceived $event) { $taskListEntry = $this->taskList->getTaskListEntryAtPosition($event->taskListPosition()); $sbMessage = RemoteMessage::fromArray($event->payload()['message']); $taskListEntry->logMessage(LogMessage::fromServiceBusMessage($sbMessage)); }