Symfony 4 - Использование мессенджера для запуска фоновой задачи после проверки формы

Я хотел бы запустить фоновое задание на Symfony 4, основываясь на настройке формы. Это позволит избежать того, что пользователь должен оставаться в форме, пока задача не будет завершена. Идея заключается в том, что когда форма проверена, она запускает независимую фоновую задачу. Затем пользователь может продолжить навигацию и вернуться после завершения задачи, чтобы получить результаты.

Мне сказали, что лучшим решением было бы использовать компонент Symfony Messenger, и поэтому я пытался его настроить, даже если я совсем не знаком с этими пакетами сообщений:

Я создал Message и MessageHandler, чтобы выполнить необходимую обработку данных, и вызвал ее из моего контроллера ($bus->dispatch(new MyMessage(params))): кажется, это работает нормально.

Затем я установил маршрутизацию amqp в messenger.yaml, чтобы MessageHandler выполнялся из моей формы асинхронно, и пользователь мог продолжать навигацию во время работы:

транспортирует:

 amqp: '%env(MESSENGER_TRANSPORT_DSN)%'

 routing: '*': amqp 

Теперь я получаю следующую ошибку при проверке формы: "Нет активной транзакции".

Любая идея, как я мог решить это?

Спасибо за вашу помощь,

0 ответов

Другие вопросы по тегам