У меня есть две функции. Одна функция, которую я хочу запустить в фоновом режиме с подключением 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()
для сообщения в браузер.
Ценю любую помощь. Замечательно, если кто-нибудь может также указать мне подробную информацию.
Благодарю.
Как и в комментарии, pcnt_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;
}
Других решений пока нет …