加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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等).

或者您可以直接在控制器中进行记录.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读