Как мне создать граф зависимостей luigi, но ничего не запустить?

Пример использования: некоторые задачи представляют собой длительные пакетные задания, на выполнение которых уходит несколько часов, необходимо проверить, что было выполнено, а что не удалось в заданную дату, прежде чем решать, какую дату выполнить повторно в первую очередь.

Как просмотреть граф зависимостей, созданный центральным планировщиком, когда ничего не запущено? Я понимаю, что могу просто перезапустить график для заданной даты, и (при условии, что ничего не изменилось) он потерпит неудачу точно в том же месте (ах), что и последний запуск, и я смогу увидеть график в планировщике. Предположим, выполнение задачи требует много времени, прежде чем она завершится неудачей. Есть ли что-то вроде аргумента --dry-run?

Я также мог бы создать пустую задачу «тумблер», которая завершалась неудачей или завершалась в зависимости от входного аргумента. Тем не менее, мне нужно помнить, что каждая задача должна зависеть от этого - легко упустить из виду (можно решить путем создания подклассов), но также создавая беспорядок.

Есть ли лучшие варианты для рассмотрения?

Изменить:

Похоже, я могу получить то, что мне нужно, установив --workers=0 при вызове luigi. Это приводит к следующему сообщению:

Did not run any tasks
This progress looks :| because there were tasks that were not granted run permission by the scheduler

Ничего не было запущено, и я получаю свой график. Похоже, здесь полезно задокументировать.


person user443854    schedule 05.02.2018    source источник


Ответы (1)


Запуск с --workers=0 работает для обычных графиков зависимостей. Однако, если вы используете динамические зависимости, эти узлы графа будут проигнорированы (динамические зависимости Tasks выводятся в run().

В будущем альтернативой станет WIP PR для статического визуализатора DAG. Однако я подозреваю, что динамические зависимости по-прежнему будут игнорироваться, учитывая необходимость выполнения run().

person dlstadther    schedule 08.02.2018