并行执行多个PHP脚本,并在完成后得到通知

时间:2012-07-31 19:12:30

标签: php multithreading parallel-processing exec

所以,这就是我要做的事情 - 实际上非常明显:

  • 启动X'同时'进程(每个进程绑定到不同的php脚本)
  • 能够说所有何时完成

我已经了解了各种不同的方法,我可能会使用exec和后台进程。 (these lines上的东西)。

我真的无法理解的事情是:

我无法弄清楚检查所有流程是否已完成的最有效方法 (能够密切关注一般进展 - 例如X out of Y完了,也是必须的)

重要的是时间效率,并且 - 显然 - 不会导致任何不必要的服务器过载(因此,我认为任何'冻结'while循环检查实时pid,即使每隔一段时间,是不可能的,对吗?)

非常欢迎任何建议!


PS:我最初使用从客户端开始的异步Ajax请求设置了这一切,但我正在考虑完全迁移到非javascript服务器端环境。然而,并行处理的问题仍然是......

1 个答案:

答案 0 :(得分:3)

您应该调查pcntl_fork及相关函数。这允许一个主进程形成许多子进程,并被通知子退出状态。

http://php.net/manual/en/function.pcntl-fork.php