Forum Webscript.Ru
Программирование => Perl => Тема начата: 1nDeX от 25 Февраля 2003, 12:21:54
-
Люди!!! Помогите!!!
У меня на хостинге какое-то "ограничение на длительные процессы". Операционка - FreeBSD... Робот по сбору информации написанный на Perl работает максимум 15 минут... В error.log после отключения скрипта ни чего не пишется... Вопрос: можно-ли как нибудь обойти это "ограничение на длительные процессы"??? :confused:
-
Нет. В лоб нельзя.
Разбивай по времени и ставь чекпоинты. Далее запускаешь с места предыдущей остановки.
-
Нет. В лоб нельзя.
Разбивай по времени и ставь чекпоинты. Далее запускаешь с места предыдущей остановки
а можно об этом по подробнее?
-
Разбиваешь код на короткие куски, которые сохраняют состояние программы и запускаются последовательно
-
Это как? "сохранять состояние программы"? В этом роботе используются регулярные выражения... Как это можно в таком случае "сохранять состояние программы"?
-
Это конечно в раздел Алгоритмы, но тут все достаточно просто.
У тебя робот по обработки информации.
Ты бы рассказал как он работает, это можит зависеть от алгоритма системы.
Но в общем такая ситуация, ты передаешь ему список серверов, котрорые нужно посетить. Нужно поставить счетчик на время работы скрипта и в конце сохранять последний обработанный сервер. Если время подходит к концу (это ты уже сам должен вычислить на сколько ставить таймаут) ты отваливаешся и инициируешь запуск этого же скрипта с места последней остановки.
Доступно обьяснил?
-
1nDeX
Как это можно
Великим множеством способов. Ты помимо регулярок что-нить пользуешь? Или у тебя обработка одного регулярного выражения занимает всю системную квоту? Если первое - ну, например, дампи переменнные в файл. Если второе - думай.
-
Можно еще файл завести с названием шагов например и именами процедур, а по завершении шага ставить признак окончания шага.
Будет достаточно легко контролируемая и модифицируемая схема.