Форум сайта python.su
Приветствую!
Есть набор изолированных друг от друга функций, которые требуется запускать в отдельных процессах. Мне нужно реализовать скрипт запуска этих функций, примерно таким образом:
./loader.py –processes=5 –threads=2 func_name
Скрипт должен делать следующее:
1. Непрерывно поддерживать заданное количество работающих процессов, выполняющих указанную функцию (если процесс завершился, неважно, успешно или нет - его нужно перезапустить)
2. Завершать их по получению sigterm процессом, в котором запускается loader.py
Сначала попробовал передавать в map бесконечный iterable:
def generate_workers(module_name, class_name, num_threads): while True: yield (module_name, class_name, num_threads) pool = multiprocessing.Pool(cfg.get('num_processes', 1)) pool.map(run_worker, generate_workers(cfg['module'], cfg['worker_class_name'], cfg['num_threads']))
Офлайн