在PHP中启动新进程/线程的最简单方法

问题描述:

场景:

  1. 共享托管,因此无法安装新扩展+ CRON
  2. 提交的请求需要执行一些繁重的过程.
  3. 我希望对客户的答复尽可能快,而繁重的工作要立即继续,但不要停止客户.
  4. 可以在新线程上(如果可能),也可以启动新进程.

做到这一点的最佳方法是什么?

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.