微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何从各种控制器访问进程对象

我正在通过Symfony Process组件开始一个简单的过程.

/**
 * @Route("/start_process",name="startProcess")
 */
public function startProcessAction(Request $siteName) {

    $process = new Process('"C:\Program Files (x86)\GnuWin32\bin\wget.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等).

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐