Symfony 4-在表单验证后使用Messenger来运行后台任务

时间:2019-01-22 09:51:16

标签: symfony-forms amqp symfony4 php-amqplib symfony-messenger

我想根据表单的设置在Symfony 4上运行后台任务。这样可以避免用户必须保留在表单上,​​直到任务完成。想法是,当表单被验证后,它将启动独立的后台任务。然后,用户可以继续其导航,并在任务完成后返回以获得结果。

有人告诉我最好的解决方案是使用Symfony Messenger组件,因此尝试进行设置,即使我对这些消息包都不是很熟悉:

我创建了一个Message和一个MessageHandler来进行所需的数据处理,然后从我的控制器中调用它($ bus-> dispatch(new MyMessage(params)):看来工作正常。

然后,我在messenger.yaml中设置了amqp路由,以便MessageHandler从我的表单中异步执行,并且用户可以在工作时继续导航:

运输:

 amqp: '%env(MESSENGER_TRANSPORT_DSN)%'

 routing: '*': amqp 

现在,在验证表单时出现以下错误:“没有活动的交易。”

有什么办法可以解决这个问题吗?

感谢您的帮助,

0 个答案:

没有答案