在PHP中启动新进程/线程的最简单方法
问题描述:
场景:
- 共享托管,因此无法安装新扩展+ CRON
- 提交的请求需要执行一些繁重的过程.
- 我希望对客户的答复尽可能快,而繁重的工作要立即继续,但不要停止客户.
- 可以在新线程上(如果可能),也可以启动新进程.
做到这一点的最佳方法是什么?
What is the best way to do this?
答
在* nix上
exec('/path/to/executable > /dev/null 2>&1 &');
在Windows上:
$WshShell = new COM('WScript.Shell');
$oExec = $WshShell->Run('C:\path\to\executable.exe', 0, false);
这两者都将产生一个新进程,该进程将异步运行,并且与父进程完全断开连接.只要您的主机允许您这样做.
Both of these will spawn a new process that will run a-synchronously, completely disconnected from the parent. As long as your host allows you to do it.