Выполняется ли PHP-скрипт при закрытии браузера?

123
R
На сайте с 13.04.2009
Offline
159
#11
Mad_Man:
Не, он не о том. Персонаж выше скатился в демагогию и намекает, что определить точное (совсем точное) время разрыва соединения не получится, вследствие чего скрипт проработает ещё немного после времени последнего успешно переданного бита информации. Но нахрена об этом вещать - я не просёк.

Это называется снобизм, ну или занудство ☝

bbon
На сайте с 01.04.2006
Offline
168
#12
Mad_Man:
Но нахрена об этом вещать - я не просёк.

А вот это, как раз, самое простое - поведение скрипта зависит от настроек веб-сервера. И да - там ни слова демагогии, я старался максимально доходчиво, на пальцах описать реальную ситуацию. Ну, проще уже никак нельзя 😕

Mad_Man
На сайте с 10.11.2008
Offline
162
#13
bbon:
А вот это, как раз, самое простое - поведение скрипта зависит от настроек веб-сервера. И да - там ни слова демагогии, я старался максимально доходчиво, на пальцах описать реальную ситуацию. Ну, проще уже никак нельзя

Вы же понимаете, что ТС хочет просто разрешить исполняться сорцу до конца, а не пытается узнать жив ли клиент?

A
На сайте с 10.12.2013
Offline
50
#14
rushter:
Чтобы скрипт продолжал работать для этого есть функция ignore_user_abort.
На php уже лет 5 не пишу, но думаю что ничего с тех времён не изменилось.

Известно, автор же написал что скрипт выполняется несколько десятков секунд, всё это время сокет весит.

Советнички 😂.

В подписи написано опыт 5 лет, а ответ нормальный дать не можете, вместо этого картинка про работу браузеров уровня 2000х годов.

Упс. Не внимательно прочитал

bbon
На сайте с 01.04.2006
Offline
168
#15
Mad_Man:
Вы же понимаете, что ТС хочет просто разрешить исполняться сорцу до конца, а не пытается узнать жив ли клиент?

Да, разумеется. :)

Я также соглашусь, что крутить настройки апача (или что там у топикстартера) под такую задачу - плохой вариант. :)

Возвращаясь к самой задаче (это уже для автора топика), один из разумных методов для медленного post-запроса - это создание очереди в БД, записывать туда параметры запроса, возвращать клиенту "ваше задание поставлено в очередь на обработку", а каким-нибудь скриптом по cron-у разгребать, например раз в минуту, эту очередь.

A
На сайте с 10.12.2013
Offline
50
#16
bbon:
Да, разумеется. :)
Я также соглашусь, что крутить настройки апача (или что там у топикстартера) под такую задачу - плохой вариант. :)
Возвращаясь к самой задаче (это уже для автора топика), один из разумных методов для медленного post-запроса - это создание очереди в БД, записывать туда параметры запроса, возвращать клиенту "ваше задание поставлено в очередь на обработку", а каким-нибудь скриптом по cron-у разгребать, например раз в минуту, эту очередь.

Ваш вариант ничем не лучше изменения конфигов апаче.

bbon
На сайте с 01.04.2006
Offline
168
#17
Artmik:
Ваш вариант ничем не лучше изменения конфигов апаче.

Ошибаетесь, уважаемый, этот вариант значительно лучше, я бы сказал - классический (для медленных запросов) 🍿

R
На сайте с 13.04.2009
Offline
159
#18
bbon:
Да, разумеется. :)
Я также соглашусь, что крутить настройки апача (или что там у топикстартера) под такую задачу - плохой вариант. :)
Возвращаясь к самой задаче (это уже для автора топика), один из разумных методов для медленного post-запроса - это создание очереди в БД, записывать туда параметры запроса, возвращать клиенту "ваше задание поставлено в очередь на обработку", а каким-нибудь скриптом по cron-у разгребать, например раз в минуту, эту очередь.

В 95% или даже 99% крутить ничего не надо, куча скриптов работает по такому принципу, причём не на коленке писанных.

У которых просто указано set_time_limit и ignore_user_abort. А они в свою очередь могут работать хоть по несколько часов.

Хотя сейчас так писать не стоит, если что-то серьёзное пишется.

web-developer
На сайте с 24.11.2014
Offline
15
#19

Интересная тема все таки получилась)

dkameleon
На сайте с 09.12.2005
Offline
386
#20
rushter:
В 95% или даже 99% крутить ничего не надо, куча скриптов работает по такому принципу, причём не на коленке писанных.
У которых просто указано set_time_limit и ignore_user_abort. А они в свою очередь могут работать по несколько часов.

это всё же плохая практика.

клиент может дергать скрипт ежесекундно, выйти за лимиты процессов/потоков.

да и для фонового процесса держать ненужный апач тоже не очень хорошо.

Дизайн интерьера (http://balabukha.com/)
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий