我有两个功能。我希望在后台使用mysql连接运行一个函数,而不向浏览器返回任何错误或任何内容。我想运行的另一个函数将数据返回给浏览器。
我已经使用了php pcntl_fork,如下所示:
$pid = pcntl_fork();
switch ($pid) {
case -1:
$this->function_background();
$this->function_return();
exit();
case 0:
$this->function_background();
break;
default:
$this->function_return();
}
在这种情况下,它返回数据库错误号2006,它只能出现在function_background()
中。
我希望函数function_background()
能够在后台使用mysql连接完全独立地运行,并且不会在浏览器中出现错误或其他任何问题。并function_return()
向浏览器发送消息。
感谢任何帮助。伟大的,如果有人可以请指出我的详细信息。
感谢。
答案 0 :(得分:2)
在评论中,pcnt_fork()用于fork现有进程,为了在后台运行它,您可以使用以下命令实现:
$pid = shell_exec(sprintf('%s > /dev/null 2>&1 &', $command));
其中:
并检查进程是否正在运行
$procResult = shell_exec(sprintf('ps %d', $pid));
if (count(preg_split("/\n/", $procResult)) > 2) {
return true;
}