我想根据表单的设置在Symfony 4上运行后台任务。这样可以避免用户必须保留在表单上,直到任务完成。想法是,当表单被验证后,它将启动独立的后台任务。然后,用户可以继续其导航,并在任务完成后返回以获得结果。
有人告诉我最好的解决方案是使用Symfony Messenger组件,因此尝试进行设置,即使我对这些消息包都不是很熟悉:
我创建了一个Message和一个MessageHandler来进行所需的数据处理,然后从我的控制器中调用它($ bus-> dispatch(new MyMessage(params)):看来工作正常。
然后,我在messenger.yaml中设置了amqp路由,以便MessageHandler从我的表单中异步执行,并且用户可以在工作时继续导航:
运输:
amqp: '%env(MESSENGER_TRANSPORT_DSN)%'
routing: '*': amqp
现在,在验证表单时出现以下错误:“没有活动的交易。”
有什么办法可以解决这个问题吗?
感谢您的帮助,