Как запустить фоновый процесс PHP на стороне сервера, когда пользователь выбирает страницу? - PullRequest
2 голосов
/ 21 декабря 2011

У меня нет опыта работы с PHP, и мне интересно, возможно ли это:

Я хочу запустить фоновый процесс PHP, когда пользователь выбирает страницу. Этот процесс будет проверять, истекла ли некоторая задержка (например, отметка времени в файле), и выполнится соответственно Страница может «вернуться» до завершения процесса.

Реально ли это, и если да, то как мне действовать? Какой будет код для запуска процесса при получении страницы? Спасибо.

1 Ответ

4 голосов
/ 21 декабря 2011

Это возможно, если ваш php не ограничен для безопасности (и у вас также установлена ​​CLI-версия PHP). Просто запустите новый процесс php:

shell_exec('nohup php /absolute/path/to/your/script.php > /dev/null &');

Обратите внимание на &. Это заставит процесс работать в фоновом режиме. Вы можете заменить / dev / null именем файла, чтобы записать вывод. Также, если «php» не работает, попробуйте / usr / bin / php или php-cli.

В качестве альтернативы, вы можете просто сделать Ajax-запрос из браузера пользователя при загрузке страницы. Этот запрос может занять столько времени, сколько необходимо (при условии, что веб-сервер настроен правильно) и будет полностью невидимым для пользователя.

...