logger->info( self::LOG_PREFIX.'Handle generation message', [ 'exportId' => (string) $exportRequestGenerationMessage->id, ] ); if (null === $exportGeneration = $this->repository->find($exportRequestGenerationMessage->id)) { throw new \UnexpectedValueException('ExportRequestGenerationMessage not found'); } if (null === $user = $this->userRepository->find($exportRequestGenerationMessage->userId)) { throw new \UnexpectedValueException('User not found'); } if (StoredObject::STATUS_PENDING !== $exportGeneration->getStatus()) { throw new UnrecoverableMessageHandlingException('object already generated'); } $generated = $this->exportGenerator->generate($exportGeneration->getExportAlias(), $exportGeneration->getOptions(), $user); $this->storedObjectManager->write($exportGeneration->getStoredObject(), $generated->content, $generated->contentType); $exportGeneration->getStoredObject()->setStatus(StoredObject::STATUS_READY); $this->entityManager->flush(); $end = microtime(true); $this->logger->notice(self::LOG_PREFIX.'Export generation successfully finished', [ 'exportId' => (string) $exportRequestGenerationMessage->id, 'exportAlias' => $exportGeneration->getExportAlias(), 'full_generation_duration' => $end - $exportGeneration->getCreatedAt()->getTimestamp(), 'message_handler_duration' => $end - $start, ]); } }