[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ограничение по времени запуску для php скриптов
7153423
Столкнулся с такой проблемой, что скрипту для выполнения требуется намного больше времени чем отведено в настройках php на сервере.
Изменить эти настройки нельзя. Админ категорически против так как с его слов подобные скрипты очень перегружают сервер.
Вопрос: как решить ту проблему? Все что мне приходит в голову сделать чтобы скрипт обрабатывал часть запроса, потом снова запускался обрабатывал еще часть и так пока задача не будет завершена... но как в этом случае перезапускать скрипт? Cron-ом как то не правильно совсем мне кажется, но других вариантов пока нет



Спустя 3 часа, 13 минут, 11 секунд (10.12.2009 - 04:34) dr_Lev написал(а):
Что-то подобное читал на каком-то форуме... Там задача стояла парсить текст ОЧЕНЬ большой, и естественно скрипт не вписывался по времени. Решение там нашли такое :
весь текст делится на N равных частей (которые один скрипт с успехом обработает). Потом в цикле открывается N сокетов на скрипт парсера, передаются данные. Сокеты не закрываются, запоминаются в массив. В следующем цикле перебираются сокеты, считываются данные, если сокет отработал - закрывается, и так, пока все сокеты не закроются.

Эмуляция многопоточности называется... погугли, инфы много есть

Спустя 34 минуты, 42 секунды (10.12.2009 - 05:09) 7153423 написал(а):
Спасибо. Идея интересная, но вот только нагрузка на сервер не реальная получится) Хотелось бы найти способ запускать каждый такой скрипт по очереди, а не одновременно

Спустя 20 минут, 36 секунд (10.12.2009 - 05:29) dr_Lev написал(а):
нагрузка будет не такая уж и большая...
Но, хозяин - барин... Если по очереди, то можно попробовать поэкспериментировать с редиректом. Т.е. делаешь кусок работы, запоминаешь состояние (можно наверно в сессию), делаешь редирект на этот же скрипт.

P.S. Мысля дальше погнала... Можно так даже организовать типа прогресс бар: редирект делаешь с интервалом около 1 сек, и выводишь состояние процесса

Спустя 13 минут, 33 секунды (10.12.2009 - 05:43) 7153423 написал(а):
хм.. а вот это реальная идея
спс

Спустя 3 часа, 39 минут, 8 секунд (10.12.2009 - 09:22) sergeiss написал(а):
Другой, также рабочий вариант - использовать функцию set_time_limit.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.