Просмотр полной версии : Скрипт померает когда засыпает
opticaltoxin
16.05.2010, 09:48
на php делаю sleep(10*60) на 10 мин
на одних хостингах после выхода из сна скрипт продолжает работать, а на других он так и не продолжает работать
подозреваю здесь дело в настройках apacha, как нить это можно обойти?
или в чем еще может быть дело?
phpdreamer
16.05.2010, 10:15
apache тут непричем
дело в настройках php.ini
должно быть
max_execution_time = 0
а там везде
max_execution_time = 30
и больше 30 сек скрипт работать не будет
opticaltoxin
16.05.2010, 10:50
apache тут непричем
дело в настройках php.ini
должно быть
max_execution_time = 0
а там везде
max_execution_time = 30
и больше 30 сек скрипт работать не будет
вроде функция sleep на подсчет времени работы скрипта не влияет
POS_troi
16.05.2010, 11:56
Какую ошибку выдает при отваливании ?
opticaltoxin
16.05.2010, 16:27
Какую ошибку выдает при отваливании ?
не знаю, хостинг не мой
в настройках апача есть timeout но он для соединений:
- The total amount of time it takes to receive a GET request.
- The amount of time between receipt of TCP packets on a POST or PUT request.
- The amount of time between ACKs on transmissions of TCP packets in responses.
время работы скрипта не видно
POS_troi
16.05.2010, 16:39
не в конфигах апача а в конфиге php.
<?php phpinfo(); ?>
max_execution_time = ?
max_input_time =?
memory_limit = ?
opticaltoxin
16.05.2010, 16:47
не в конфигах апача а в конфиге php.
<?php phpinfo(); ?>
max_execution_time = ?
max_input_time =?
memory_limit = ?
Настройки на чужом сервере:
max_execution_time = 30 - при таких настройках на моем сервере скрипт работает нормально после sleep'а
max_input_time = 60
memory_limit = 64 - каким образом объем памяти влияет на время работы скрипта?
POS_troi
16.05.2010, 17:01
Хм... Какой таймаут у апача, у сервака на котором все окей пашет?
Дело в том что если сервак рвет соединение то скрипт тоже завершится ибо результаты то отдавать некому будет.
есть в PHP параметр , что-то типо IgnoreUserAborted (или как-то так), если рвется соединение или ты нажал крестик в браузере то скрипт плюет на это, но вот не знаю толи в скрипте это прописывается толи в конфиге.
каким образом объем памяти влияет на время работы скрипта?
ОЗУ это все!
З.Ы. Я не знаток PHP и поэтому мои ответы не есть достоверными на все 100% а являются моими рассуждениями, основанными на тех знаниях что все-же есть.
opticaltoxin
16.05.2010, 17:12
Дело в том что если сервак рвет соединение то скрипт тоже завершится ибо результаты то отдавать некому будет.
на моем сервере в httpd.conf и инклудах не нашел параметра timeout, видимо он выставляеца по дефолту если не прописан
есть в PHP параметр , что-то типо IgnoreUserAborted (или как-то так), если рвется соединение или ты нажал крестик в браузере то скрипт плюет на это, но вот не знаю толи в скрипте это прописывается толи в конфиге.
у меня стоит в скрипте: ignore_user_abort(true);
по-идее после разрыва соединения скрипт должен продолжать работать
Винда?Note: The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running. This is not true on Windows where the measured time is real.
opticaltoxin
16.05.2010, 19:39
Винда?
Не венда
только что закончил работать тестовый скрипт:
<?php
echo "Test 3";
ignore_user_abort(true);
sleep(2*60*60);
$Test = fopen('test.ok','w');
fclose($Test);
?>
после двух часов сна он проснулсо и создал файл при настройках которые я указывал выше
если такие временные промежутки то не разумней ли, было бы юзать crontab? (или at под виндой)
opticaltoxin
17.05.2010, 09:48
если такие временные промежутки то не разумней ли, было бы юзать crontab? (или at под виндой)
нельзя по религиозным соображениям
opticaltoxin
19.05.2010, 21:10
Не венда
только что закончил работать тестовый скрипт:
<?php
echo "Test 3";
ignore_user_abort(true);
sleep(2*60*60);
$Test = fopen('test.ok','w');
fclose($Test);
?>
после двух часов сна он проснулсо и создал файл при настройках которые я указывал выше
Протестил этот скрипт на том хостинге - файл не создалсо
Так кто-нить знает причину того что кто то убивает скрипт,
может быть из-за того что там PHP as CGI и какой-то процесс мониторит то. что процесс PHP долго сидит в памяти и из-за этого его прибивает?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot