所以,这就是我要做的——实际上很不言自明:
- 启动X个"同时"进程(每个进程绑定到不同的php脚本)
- 能够说出所有何时完成
我已经研究了各种不同的方法,我可能会使用exec
和后台进程。(大致如此)。
我真的无法理解的是:
我不知道哪种方法是检查是否所有流程都已完成的最有效方法(能够关注总体进度,例如完成Y中的X也是必须的)。
重要的是时间效率,而且——显然——不会导致任何不必要的服务器过载(所以,我认为任何对实时pid
的"冻结"while
循环检查,即使是每隔一段时间,也是不可能的,对吧?)
非常欢迎任何建议!
p.S.:我最初是用从客户端开始的异步Ajax请求来设置这一切的,但我目前正在考虑迁移到非javascript的完全服务器端环境。不过,并行处理的问题仍然存在
您应该研究pcntl_fork和相关函数。这允许一个主进程形成多个子进程,并被通知子进程退出状态。
http://php.net/manual/en/function.pcntl-fork.php