Я пытаюсь настроить файл запуска php, который будет запускать фоновый процесс. (см. этот вопрос )
Я делаю это в среде Windows Wampserver.
Так, например, у меня есть trigger.php
, который запускает функцию exec, которая вызывает мой backgroundProcess.php
для анализа и выполнения.
Однако проблема в том, что мой файл trigger.php
ожидает, пока команда exec()
завершит выполнение backgroundProcess.php
, прежде чем она остановится. Фоновый процесс длится около 20-30 секунд, и trigger.php
все это время ожидает, пока backgroundProcess.php
полностью не завершится.
Это имеет смысл? Вот файл trigger.php
, который запускает команду exec()
exec('C:\wamp\bin\php\php'.phpversion().'\php.exe -f C:\path\to\backgroundProcess.php > C:\wamp\bin\php\php'.phpversion().'\dev\null &');
По сути, я хочу, чтобы trigger.php
просто вызвал backgroundProcess и не ждал, пока он завершится.
EDIT
Проблема решена с помощью следующей команды:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("C:\wamp\bin\php\phpVERSIONNUMBER\php-win.exe -f C:/wamp/www/path/to/backgroundProcess.php", 0, false);