我正在创建一个将通过命令行运行的PHP脚本.作为此脚本的一部分,有时我可能需要生成/分叉可能需要很长时间才能完成的不同脚本.我不想阻止原始脚本完成.如果我使用JavaScript执行此操作,我可以在后台运行AJAX请求.这基本上就是我在这里要做的.我不需要知道叉子什么时候完成,只需要他们开始并完成自己.
如何异步运行这些PHP脚本?
foreach ($lotsOfItems as $item) {
if ($item->needsExtraHelp) {
//start some asynchronous process here, and pass it $item
}
}
Run Code Online (Sandbox Code Playgroud)
int pcntl_fork ( void )
pcntl_fork ()函数创建一个子进程,该子进程与父进程的区别仅在于其 PID 和 PPID。请参阅系统的 fork(2) 手册页,了解有关 fork 如何在您的系统上工作的具体详细信息。
详细信息:http://php.net/manual/en/function.pcntl-fork.php
不应在 Web 服务器环境中启用流程控制,如果在 Web 服务器环境中使用任何流程控制功能,则可能会发生意外结果。
详细信息: http: //www.php.net/manual/en/intro.pcntl.php