Найти - Пользователи
Полная версия: Мониторинг работы "бесконечных" итераторов.
Начало » Базы данных » Мониторинг работы "бесконечных" итераторов.
1
fth
Отслеживаю измения в Couch DB, примерно таким кодом:
for change in dbl.changes(feed='continuous', heartbeat = 10000):
process_func(change)
По сути цикл проходит по “бесконечному” итератору, при этом между сосденими элементами может быть существенный промежуток во времени.
Хотелось бы сделать автоматический мониторинг (без перезапуска) запущен этот цикл или нет, к сожалению, т.к. символ переноса посылаемый базой по параметру heartbeat модулем Питона никак не отдаётся, самый очевидный способ отпадает.
Есть ли соображения как это можно сделать?
agalen
А почему бы просто не использовать try…finally вокруг?
Например, так:
try:
for change in dbl.changes(feed='continuous', heartbeat = 10000):
process_func(change)
finally:
on_my_super_loop_dead()
fth
А что будет если убить процесс?
Может стоит помучатся и запустить это дело как демона?
agalen
Получается, задача сводится к слежению за процессом (демон ведь тоже процесс). Тут уже разные способы: использование готовых средств мониторинга, написание собственных и т.д.
Можно еще в inittab задать автоматический перезапуск в случае смерти демона.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB