Обойти max_execution_time

Статус
В этой теме нельзя размещать новые ответы.

mixamixa

Постоялец
Регистрация
9 Янв 2007
Сообщения
61
Реакции
13
Все пытаюсь найти способо, чтобы php скрипт работал бесконечно долго...Может кто нибудь подскажет, как это эффективнее организовать..(ну через cron или еще как..)
 
Можно так обойти
ini_set("max_execution_time", ТУТ_ВРЕМЯ_НА_КОТОРОЕ_ЗАПУСКАТЬ) по поводу этой опции читать тут Для просмотра ссылки Войди или Зарегистрируйся
 
Я использую

ini_set("max_execution_time",0);

тут есть 2 варианта.
либо ты вызываешь скрипт через браузер, т.е. соединение не разрывается, и продолжает жить до тех пор пока идет какая то инфа от сервера. (использование flush() для немедленной отправки данных)
Но соединение все равно может застопиться по различным причинам( плохой инет, особенности браузера...) и тогда твой скрипт остановиться.

я же обычно вызываю через http скрипт, который запускает системным вызовом system("php_path src_file opts")
в котором совместно используется
ini_set("max_execution_time",0);
и
ignore_user_abort(1);

т.е. скрипт начинает жить сам по себе.
но скрипт и в этом случае может застопиться. либо сам вывалиться, либо его пхп вывалит например с ошибкой memory limit , либо сервак может убить (зависит от настроек сервака), но в любом случае и скрипт выполняется шустрее, да и понадежнее этот вариант =)

*если что то непонятно - разъясню подробнее =)
 
Если нет прав изменить max_execution_time, то есть стоит на сервере safe_mode, то раздели работу скрипта на подзадания, так чтобы каждое выполнялось не более 30 сек. Задания запиши в базу или текстовый файл. И выполняй их через аякс в порядке очереди.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху