Symfony 4 - Использование мессенджера для запуска фоновой задачи после проверки формы
Я хотел бы запустить фоновое задание на Symfony 4, основываясь на настройке формы. Это позволит избежать того, что пользователь должен оставаться в форме, пока задача не будет завершена. Идея заключается в том, что когда форма проверена, она запускает независимую фоновую задачу. Затем пользователь может продолжить навигацию и вернуться после завершения задачи, чтобы получить результаты.
Мне сказали, что лучшим решением было бы использовать компонент Symfony Messenger, и поэтому я пытался его настроить, даже если я совсем не знаком с этими пакетами сообщений:
Я создал Message и MessageHandler, чтобы выполнить необходимую обработку данных, и вызвал ее из моего контроллера ($bus->dispatch(new MyMessage(params))): кажется, это работает нормально.
Затем я установил маршрутизацию amqp в messenger.yaml, чтобы MessageHandler выполнялся из моей формы асинхронно, и пользователь мог продолжать навигацию во время работы:
транспортирует:
amqp: '%env(MESSENGER_TRANSPORT_DSN)%'
routing: '*': amqp
Теперь я получаю следующую ошибку при проверке формы: "Нет активной транзакции".
Любая идея, как я мог решить это?
Спасибо за вашу помощь,