Мне нужно управлять большим рабочим процессом задач ETL, выполнение которых зависит от времени, доступности данных или внешнего события. Некоторые рабочие задания могут завершиться неудачно во время выполнения рабочего процесса, и система должна иметь возможность перезапуска неудачной ветки рабочего процесса, не дожидаясь завершения всего рабочего процесса.
Существуют ли какие-либо фреймворки в python, которые могут справиться с этим?
Я вижу несколько основных функций:
- Расширение DAG
- Выполнение узлов (запуск оболочки cmd с ожиданием, ведение журнала и т.д.)
- Возможность восстановления подграфа в родительской DAG во время выполнения
- Возможность ручного выполнения узлов или подграфа при запуске родительского графа
- Приостановить выполнение графика во время ожидания внешнего события
- Список очередей заданий и заданий
Что-то вроде Oozie, но более общего назначения и в python.