Может ли прерываться работа PHP скрипта при закрытии браузера?
Добрый день!
На сайте запускается 1 раз в день функция, при заходе на страницу, иногда она может работать долго сек 10 -30, в это время пользователь может закрыть страницу или браузер
В ближайшее время этот скрипт повесят на крон, но в данный момент скрипт иногда работает не корректно, может ли прерваться работа PHP скрипта при закрытии браузера?
Да, при разрыве соединения с клиентом работа длительного скрипта прерывается, для того что бы этого не происходило поставьте в начале скрипта: ignore_user_abort(true);
В этом случае скрипт всегда будет работать до конца даже если браузер был закрыт.
"При работе с PHP скриптом в КОМАНДНОЙ СТРОКЕ, когда терминал скрипта отключается без прерывания работы скрипта, скрипт будет остановлен, если параметр value не равен TRUE"
akubintsev: Всё верно, у меня так и было, я запускал скрипт из консоли, потом лагал интернет, я переподключался и видел что скрипт не работает. Добавление этой строчки решило мои проблемы.
Дмитрий: вот так, век живи - век учись :) Скорее всего тут еще что-то завязано с настройкой "max_execution_time" в php.ini или каких-то иных тайм-аутов, типа fastcgi_send_timeout
Если у вас php-fpm, то используйте в вашем скрипте fastcgi-finish-request. Функция сразу заставляет браузер вывести ответ, но скрипт продолжит выполняться.