Я пытаюсь настроить файл триггера 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
просто запускал фоновый процесс, а не ждал его завершения.
ИЗМЕНИТЬ
Проблема решена следующей командой:
$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);