timeout и PHP

Vetall

Новичок
timeout и PHP

Народ, у меня скрипт обрабатывает много информации и иногда вылетает с такой ошибкой:

Fatal error: Maximum execution time of 30 seconds exceeded in script.php on line 209

Как можно заставить его работать столько сколько ему нужно? или хотя бы увеличить время таймаута.
 

SiMM

Новичок
Оптимизируй. 30 секунд для web'а - это слишком много.
 

zarus

Хитрожопый макак
PHP:
// Увеличивает время до MAX_TIME
set_time_limit($MAX_TIME);
// Снимает ограничение на время исполнения скрипта
// На некоторых хостингах запрещено снятие ограничения - при вызове выдается предупреждение
set_time_limit(0);
-~{}~ 18.11.05 09:11:

Автор оригинала: SiMM
Оптимизируй. 30 секунд для web'а - это слишком много.
Для какого ВЕБа - это слишком много? Для текстового? А если у меня выборка с промежуточным расчетом и последующей подгрузкой в зависимости от расчетов данных из других таблиц?
Только не говорите, что SQL может сделать сложные расчеты.
Например, пакетная загрузка данных в базу у меня может занимать до 60 минут. И что же мне теперь, запускать скрипт 60 раз?
 

SiMM

Новичок
> Например, пакетная загрузка данных в базу у меня может занимать до 60 минут.
И что же, каждый пользователь у тебя раз в минуту занимается тем, что загружает данные в базу, обработка которых длится 60 минут? Такие вещи делаются из шелла. И не так часто, чтобы заморачиваться. А возможность установки лимита зависит от условий хостинга.
Если у тредстартера каждый пользователь вынужден ждать по 30 секунд до получения результата - выход у него один - оптимизировать. Такое длительное время выполнения скрипта для вэба - ненормально.
 

Vetall

Новичок
согласен с zarus. Веб бывает разный. Если он используется для чтения последних новостей, то 30 сек действительно много, а если сервер используется для проведения аналитического расчета или ещё чего-нибудь требующего постоянной загрузки и обработки последней информации, тогда вполне нормально. Иногда пользователь согласен подождать, чтоб получить самые последние результаты, вместо того чтоб получить данные обработанные роботом 30 минут назад.
 

zarus

Хитрожопый макак
Автор оригинала: SiMM
> Например, пакетная загрузка данных в базу у меня может занимать до 60 минут.
И что же, каждый пользователь у тебя раз в минуту занимается тем, что загружает данные в базу, обработка которых длится 60 минут? Такие вещи делаются из шелла. И не так часто, чтобы заморачиваться. А возможность установки лимита зависит от условий хостинга.
Если у тредстартера каждый пользователь вынужден ждать по 30 секунд до получения результата - выход у него один - оптимизировать. Такое длительное время выполнения скрипта для вэба - ненормально.
Я не спорю, что надо придерживаться оптимальных времен выполнения скриптов. НО не стоит ВСЕ задачи подводить под одну гребёнку. Я просто указал на частный случай, когда 30 секунд - не просто мало, а просто смешно мало.
 

Andreika

"PHP for nubies" reader
вот сотня пользователей запустит такие скрипты на серваке и посмеетесь )
 

SiMM

Новичок
> НО не стоит ВСЕ задачи подводить под одну гребёнку.
Я по моему ещё в самом начале сделал достаточную оговорку (а потом даже расшифровал её), чтобы было понятно о том, что речь идёт не о всех задачах. А тредстартер свою задачу не описал. Собственно мой пост должен был побудить его сделать это. А не ту тучу флейма, который за ним последовал.
 

Vetall

Новичок
а зачем описывать задачу? Я задал вопрос и (спасибо zarus)получил конкретный ответ. Туча флейма последовала после твоего поста. каждому ж хочется выразить свою гениальность и мне в том числе :)
 

DEEX

Guest
set_time_limit($MAX_TIME);
set_time_limit(0);

Кстати эта тема практически везде заблочена....
 

zarus

Хитрожопый макак
И правильно заблочена, как сказал SiMM - скрипты должны быть оптимизированы, и уже только после этого надо задумываться об увеличении времени исполнения.
 
Сверху