您应该知道PHP中没有线程.但是如果你在Unix/linux系统上运行,你可以轻松地执行程序并将它们分离.
$command = "/usr/bin/php '/path/to/your/php/to/execute.php'";
exec("{$command} > /dev/null 2>&1 & echo -n \$!");
Run Code Online (Sandbox Code Playgroud)
可以做这个工作.我们来解释一下:
exec($command);
Run Code Online (Sandbox Code Playgroud)
执行/ usr/bin/php'/path/to/your/php/to/execute.php':您的脚本已启动,但Apache将在执行下一代码之前等待执行结束.
> /dev/null
Run Code Online (Sandbox Code Playgroud)
将标准输出(即您的回声,打印等)重定向到虚拟文件(其中写入的所有输出都将丢失).
2>&1
Run Code Online (Sandbox Code Playgroud)
将错误输出重定向到标准输出,写入相同的虚拟和非现有文件.这样可以避免将日志记录到apache2/error.log中.
&
Run Code Online (Sandbox Code Playgroud)
在你的情况下是最重要的事情:它将分离你的$ command的执行:所以exec()将立即释放你的PHP代码执行.
echo -n \$!
Run Code Online (Sandbox Code Playgroud)
将给你的分离执行的PID作为响应:它将由exec()返回并使你能够使用它(例如,将此pid放入数据库并在一段时间后将其终止以避免僵尸).
| 归档时间: |
|
| 查看次数: |
2152 次 |
| 最近记录: |