Symfony-表单设置中的后台任务

时间:2019-01-09 10:06:32

标签: symfony process background task symfony4

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

感谢您的帮助,

2 个答案:

答案 0 :(得分:1)

您需要使用模式消息总线。自4.1版引入Messenger组件以来,Symfony就拥有了这种模式的实现。

您可以在此处查看文档:{​​{3}}

要使其正常工作,您需要一些将实现https://symfony.com/doc/current/components/messenger.html的外部程序。在PHP世界中,恕我直言AMQP protocol最受欢迎。

答案 1 :(得分:0)

一个非常简单的解决方案可以是以下过程:

  1. 表格有效。
  2. 已创建一个临时文件。
  3. Cronjob每五分钟执行一次,并启动一个symfony命令。
  4. 该命令检查文件是否存在以及是否为空。
  5. 如果是这样,该命令将在后台任务中运行。但是在此之前,该命令将其进程ID写入文件中,以防止再次受到蜂拥而来。
  6. 命令完成后删除文件。
  7. 只要文件存在,您就可以向用户显示任务正在运行的提示。