Контроль выполнения процесса

Статус
В этой теме нельзя размещать новые ответы.

PocketDevil

Постоялец
Регистрация
26 Янв 2008
Сообщения
92
Реакции
161
Нужны советы по контролю выполнения скрипта.
Есть задача парсить или чекать линки (очень много).
Нужно контролировать этот процесс, если процесс отвалился, то восстанавливать процесс с последнего удачного результата.
При этом для устойчивой многопоточности, надо гарантировать, что если поток умрет, не остановит все остальные.
Подскажите, кто сталкивался...
 
используйте для этих целей perl
 
Да я знаю, что он больше подходит для таких задач,но в перле не силён =(
Поэтому, каждый крутится как может.
 
Можно вести историю каждого процесса- пусть он пишет в отдельный текстовый файл какие-нибудь данные.
 
Пишите в базу последний обработанный файл. С помощью базы можно и потоками управлять, например, создать флаги останова скрипта и все такое подобное.
 
Да, с базой интересно.
Создавать временную таблицу под процессы и по кол-ву потоков коли-во записей. Блокировать записи для проверки, умер ли скрипт, если запись не заблокирована значит данный поток умер или завис и его надо перезапускать...
Как думаете такой вариант будет работать?
 
очень простая задача решаемая с помощью крона, суть такова как писали выше нужно создать вспомогательную таблицу куда можно будет писать значение последней переменной.


Алгоритм такой:

1. Получаем из вспомогательной таблицы значение last_id
2. Делаем выборку из таблицы где id больше значения last_id с limit 1
3а. Если ответ с нулевым результатом то last_id приравниваем значению last_id 0, и сохраняем в базе.
3б. Если же ответ есть, то обрабатываем запись из таблицы, приравниваем last_id текущему id из таблицы, и делаем нужные задачи с данными, лезем по ссылке итп..

дальше можно чтобы каждую минуту поставить чтобы запускался крон
 
Тоже решал похожую задачу. Скрипт-чекер берет данные для проверки из базы, и переодически пишет в файл текущее время, текущую информацию о том что проверяет и id процесса. Так же работает скрипт на кроне, который обходит все файлы, созданные потоками и смотрит на время записи из файла.. если разница между текщим временем и временем активности потока больше заданного значения (скрипт завис) - снимает зависший поток и запускает его заново.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху