Будет ли выполнятся PHP скрипты при закрытие веб страницы?

Здравствуйте, вот собственно задаюсь вопросом, будет ли выполнятся php скрипты если закрыть страничку, ну вот например ты зашел в 8 вечера и нажал на кнопку начать отчет и ушел предварительно закрыв страницу, потом часов в 10 пришел и открыл страницу и там написано, прошло столько то времени и он все еще выполняется этот отчет.
  • Вопрос задан
  • 2022 просмотра
Пригласить эксперта
Ответы на вопрос 7
Decadal
@Decadal
1) Браузер или его альтернатива отправляет запрос на сервер. 2) Сервер обрабатывает запрос (этот момент и есть началом работы php-скрипта). 3) Сервер возвращает ответ на запрос (факт отправки ответа говорит о том, что php-скрипт прекратил своё выполнение, т.е., результатом выполнения php-скрипта есть ответ браузеру).

Если вы не дождались ответа от сервера и покинули страницу, но скрипт ещё выполнялся, то он продолжает своё выполнение до тех пор, пока не превысит лимит отведенного времени либо пока не выполнится, но вы результат выполнения словить уже не сможете. При возврате на страницу запустится тот же скрипт в другом потоке, с самого начала.
А то, о чем пишите вы, не означает, что php-скрипту обязательно работать всё то время, которое пользователь не находится на связи. Непрерывное выполнение сценария это уже в сторону веб-сокетов.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
В общем случае скорее всего да (при условии увеличения таймаутов), но не всегда.
Если в средине скрипта есть вывод и сервер поймет что браузер его не принимает - то тоже может оборваться выполнение, для того чтобы этого избежать нужно добавить ignore_user_abort(true);

Но лучше такой подход для вашей цели не использовать)
Ответ написан
Комментировать
@dev400
если в базу записать, то можно
Ответ написан
@alexmixaylov
если закроешь страничку php
то скрипт прервет выполнение

смотря какая задача стоит у вас
можно запустить исполняемый сценарий через SSH
можно использовать cron (расписание)

все зависит от того какую задачу нужно решить
Ответ написан
viphorizon
@viphorizon
Для этого можно выполнять регулярные задачи cron:
php proverka-i-vipolnenie-zadach.php
Этот скрипт должен бегать по базе данных и искать запланированные задачи, если найдёт, то выполняет.
Ответ написан
Комментировать
jacksparrow
@jacksparrow
То что вы хотите увидеть называется очереди, смотрите в их сторону. Более простыми отложенное выполнение задач.
Ответ написан
Комментировать
@private_tm
JAVA dev
Недавно узнал что возможно и вечное выполнения без всяких кронов. Надо запустить скрипт с консоли и в середине скрипта вечный цыкл кажеться так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы