php – 如何从各种控制器访问进程对象
发布时间:2020-12-13 16:04:37 所属栏目:PHP教程 来源:网络整理
导读:我正在通过Symfony Process组件开始一个简单的过程. /** * @Route("/start_process",name="startProcess") */public function startProcessAction(Request $siteName) { $process = new Process('"C:Program Files (x86)GnuWin32binwget.exe" --no-paren
我正在通过Symfony Process组件开始一个简单的过程.
/** * @Route("/start_process",name="startProcess") */ public function startProcessAction(Request $siteName) { $process = new Process('"C:Program Files (x86)GnuWin32binwget.exe" --no-parent -U Mozilla -r http://google.de/'); $process->start(); return new Response("Process STARTED"); } 这部分工作正常.但是,由于该过程有时需要更长时间才能完成,我想检查其进度和输出.这个过程是异步启动的,所以我想我应该可以在一个不同的控制器中做到这一点,我通过ajax调用它. 我不知道如何从另一个控制器访问进程对象. 解决方法
实现进程日志记录系统,这样您不仅可以检查当前正在运行的进程,还可以查看花费的时间,某天运行的进程数等等.您甚至可以收集有关每个站点的平均进程持续时间的统计信息.还有很多.
只需创建自己的Process类,它将扩展symfony并重写process()方法,使其首先将新记录插入日志,然后调用parent的process()方法.然后在控制器中确保返回唯一的进程ID,该进程ID将用于通过ajax调用检查其状态(in_process,finished,timeout等). 或者您可以直接在控制器中进行记录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |