Symfony Worker - потреблять сообщения - EntityManager - PullRequest
0 голосов
/ 13 декабря 2018

Я использую Symfony 4 с мессенджером и использую работника, который использует мои сообщения как длительный процесс.

У меня есть ошибка с доктриной, если я удаляю свое сообщение и воссоздаю новое, и я отправляюмое сообщение.$ post содержит старые данные, а не новые.

Я много чего перепробовал и ничего не работает, работает, когда я перезагружаю свою рабочую.

class ChannelMessageHandler implements MessageHandlerInterface
{
    private $channel;
    private $bus;

    public function __construct(ChannelService $channel, MessageBusInterface $commandBus)
    {
        $this->channel = $channel;
        $this->bus = $commandBus;
    }

    public function __invoke(ChannelMessage $channelMessage)
    {
        $error = $this->channel->handleChannel($channelMessage->getUser(), $channelMessage->getService());
        if ($error) {
            throw new Exception($error[0]);
        }
        $this->bus->dispatch(new FeedMessage($channelMessage->getUser(), $channelMessage->getService()));
    }
   }
}

Мой MessageHandler вызываетуслуга:

class ChannelService implements ContainerAwareInterface
{
    use ContainerTrait;

    protected $em;
    protected $logger;

    public function __construct(EntityManagerInterface $entityManager, LoggerInterface $logger)
    {
        $this->em = $entityManager;
        $this->logger = $logger;
    }

    public function handleChannel($userId, $serviceName)
    {
        $user = $this->em->getRepository('App:User\Authentication\User')->findOneById($userId);
        $post = $user->getPost();

        return $this->getUserAnalyticBy($post, $serviceName);
    }

большое спасибо

...