Как заставить правило триггера `all_done` работать с * -grandparent узлами в airflow 1.8? - PullRequest
0 голосов
/ 26 апреля 2018

Правило триггера "all_done" не работает, когда его родители помечены как State.None вместо State.Upstream_Failed.

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

Вот частичное древовидное представление моего DAG, которое, как мне кажется,демонстрирует проблему:

treeview

В этом DAG tmp_cleanup имеет значение all_done, потому что мы хотим выполнить очистку независимо от того, происходит ли сбой или нет.Это работает в случае сбоя непосредственного родителя (load_att_wv2_m1bs), но не в случае сбоя * -grandparent (rm_spurrious_gis_files или unzip_wv2_ingest), поскольку UPSTREAM_FAILED никогда не распространяется.

AIRFLOW-1515 сообщает об этом как об ошибке, создавая у меня впечатление, что all_done не работает для * -grandparents в 1.8.

Если это не может быть исправлено путем изменения конфигурации, я хочу знать,лучший способ воссоздать поведение all_done, чтобы я мог запустить задачу очистки в конце группы обеспечения доступности баз данных, независимо от того, будет ли она неудачной или успешной.

...