Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell symfony4:启动并跟踪长后台任务的进度_Shell_Symfony_Symfony4 - Fatal编程技术网

Shell symfony4:启动并跟踪长后台任务的进度

Shell symfony4:启动并跟踪长后台任务的进度,shell,symfony,symfony4,Shell,Symfony,Symfony4,我有一个symfony4应用程序,它有一个后端处理组件,需要几分钟才能运行。目前,它是从一个bash脚本和几个symfony控制台命令开始的 我希望能够在web界面中启动此进程,并显示其进度(并防止在仍在运行时再次启动) 后台任务不需要获取任何参数,它从数据库读取所需的所有数据 由于后端进程需要很长时间,我不希望在运行时有一个网页挂起。web前端需要启动它,然后分离。用户打算稍后回来检查结果 我在Symfony文档或本网站上找不到解决方案。我看到的最简单的解决方案是有一个具有唯一id的表“tra

我有一个symfony4应用程序,它有一个后端处理组件,需要几分钟才能运行。目前,它是从一个bash脚本和几个symfony控制台命令开始的

我希望能够在web界面中启动此进程,并显示其进度(并防止在仍在运行时再次启动)

后台任务不需要获取任何参数,它从数据库读取所需的所有数据

由于后端进程需要很长时间,我不希望在运行时有一个网页挂起。web前端需要启动它,然后分离。用户打算稍后回来检查结果


我在Symfony文档或本网站上找不到解决方案。

我看到的最简单的解决方案是有一个具有唯一id的表“transaction”-触发后台任务后,您首先创建一个事务,并将标志设置为“running”(当然,完成,甚至在完成后删除它)

当您将此id返回给后台任务的请求者时,当您想要查看更新时,它可以很容易地请求此事务id及其状态。

您可以将此id用于长时间的后台任务


您也可以通过订阅来处理长任务,但这仅在您不使用modphp的情况下有效。

是的,但是如何从Symfony创建后台任务?从应用程序启动bash脚本/Symfony命令有什么问题?这应该是非阻塞的,对吗?我正在寻找最好的方法。过程执行?系统呼叫?有什么好办法吗?对不起,我可能不明白你的问题。我怎么知道在不知道的情况下触发流程的最佳方式是什么?它是否需要跨操作系统兼容?是否有特定的IO、DB等权限?是否需要考虑任何DB锁?如果只是简单的数据库维护,没有任何并发问题,为什么不使用当前的symfony命令并从应用程序启动它呢?但我建议您提供更多关于您真正想要实现的目标的详细信息,以及更多详细信息。欢迎来到StackOverflow!以防万一,您可以将单词包装成链接以获得更好的阅读体验。