timeout и PHP

  • Автор темы Автор темы Vetall
  • Дата начала Дата начала

Vetall

Новичок
timeout и PHP

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

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

Как можно заставить его работать столько сколько ему нужно? или хотя бы увеличить время таймаута.
 
PHP:
// Увеличивает время до MAX_TIME
set_time_limit($MAX_TIME);
// Снимает ограничение на время исполнения скрипта
// На некоторых хостингах запрещено снятие ограничения - при вызове выдается предупреждение
set_time_limit(0);

-~{}~ 18.11.05 09:11:

Автор оригинала: SiMM
Оптимизируй. 30 секунд для web'а - это слишком много.
Для какого ВЕБа - это слишком много? Для текстового? А если у меня выборка с промежуточным расчетом и последующей подгрузкой в зависимости от расчетов данных из других таблиц?
Только не говорите, что SQL может сделать сложные расчеты.
Например, пакетная загрузка данных в базу у меня может занимать до 60 минут. И что же мне теперь, запускать скрипт 60 раз?
 
> Например, пакетная загрузка данных в базу у меня может занимать до 60 минут.
И что же, каждый пользователь у тебя раз в минуту занимается тем, что загружает данные в базу, обработка которых длится 60 минут? Такие вещи делаются из шелла. И не так часто, чтобы заморачиваться. А возможность установки лимита зависит от условий хостинга.
Если у тредстартера каждый пользователь вынужден ждать по 30 секунд до получения результата - выход у него один - оптимизировать. Такое длительное время выполнения скрипта для вэба - ненормально.
 
согласен с zarus. Веб бывает разный. Если он используется для чтения последних новостей, то 30 сек действительно много, а если сервер используется для проведения аналитического расчета или ещё чего-нибудь требующего постоянной загрузки и обработки последней информации, тогда вполне нормально. Иногда пользователь согласен подождать, чтоб получить самые последние результаты, вместо того чтоб получить данные обработанные роботом 30 минут назад.
 
Автор оригинала: SiMM
> Например, пакетная загрузка данных в базу у меня может занимать до 60 минут.
И что же, каждый пользователь у тебя раз в минуту занимается тем, что загружает данные в базу, обработка которых длится 60 минут? Такие вещи делаются из шелла. И не так часто, чтобы заморачиваться. А возможность установки лимита зависит от условий хостинга.
Если у тредстартера каждый пользователь вынужден ждать по 30 секунд до получения результата - выход у него один - оптимизировать. Такое длительное время выполнения скрипта для вэба - ненормально.
Я не спорю, что надо придерживаться оптимальных времен выполнения скриптов. НО не стоит ВСЕ задачи подводить под одну гребёнку. Я просто указал на частный случай, когда 30 секунд - не просто мало, а просто смешно мало.
 
вот сотня пользователей запустит такие скрипты на серваке и посмеетесь )
 
> НО не стоит ВСЕ задачи подводить под одну гребёнку.
Я по моему ещё в самом начале сделал достаточную оговорку (а потом даже расшифровал её), чтобы было понятно о том, что речь идёт не о всех задачах. А тредстартер свою задачу не описал. Собственно мой пост должен был побудить его сделать это. А не ту тучу флейма, который за ним последовал.
 
а зачем описывать задачу? Я задал вопрос и (спасибо zarus)получил конкретный ответ. Туча флейма последовала после твоего поста. каждому ж хочется выразить свою гениальность и мне в том числе :)
 
set_time_limit($MAX_TIME);
set_time_limit(0);

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