我在 subdag 中有一个任务(名为 task1
),dag 运行已完成。然后我将 task1
重命名为 task2
,并使用“airflow clear”重新运行之前的 dag 运行。那么subdag始终处于运行状态。当我放大子dag时,我可以看到子dag的状态是成功,并且它的所有任务都已成功完成。
子dag的日志显示Airflow仍在等待task1
(但它被标记为“已删除”):
[2018-08-22 23:53:04,032] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:04,032] {jobs.py:2002} INFO - [backfill progress] | finished run 1 of 1 | tasks waiting: 1 | succeeded: 5 | kicked_off: 0 | failed: 0 | skipped: 5 | deadlocked: 0 | not ready: 0
[2018-08-22 23:53:04,032] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:04,032] {jobs.py:2006} INFO - Finished dag run loop iteration. Remaining tasks [<TaskInstance: task1 2018-08-08 15:13:02 [removed]>]
[2018-08-22 23:53:09,050] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:09,049] {jobs.py:2002} INFO - [backfill progress] | finished run 1 of 1 | tasks waiting: 1 | succeeded: 5 | kicked_off: 0 | failed: 0 | skipped: 5 | deadlocked: 0 | not ready: 0
[2018-08-22 23:53:09,050] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:09,050] {jobs.py:2006} INFO - Finished dag run loop iteration. Remaining tasks [<TaskInstance: task1 2018-08-08 15:13:02 [removed]>]
[2018-08-22 23:53:14,068] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:14,067] {jobs.py:2002} INFO - [backfill progress] | finished run 1 of 1 | tasks waiting: 1 | succeeded: 5 | kicked_off: 0 | failed: 0 | skipped: 5 | deadlocked: 0 | not ready: 0
[2018-08-22 23:53:14,068] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:14,068] {jobs.py:2006} INFO - Finished dag run loop iteration. Remaining tasks [<TaskInstance: task1 2018-08-08 15:13:02 [removed]>]
[2018-08-22 23:53:19,083] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:19,083] {jobs.py:2002} INFO - [backfill progress] | finished run 1 of 1 | tasks waiting: 1 | succeeded: 5 | kicked_off: 0 | failed: 0 | skipped: 5 | deadlocked: 0 | not ready: 0
[2018-08-22 23:53:19,084] {base_task_runner.py:95} INFO - Subtask: [2018-08-22 23:53:19,083] {jobs.py:2006} INFO - Finished dag run loop iteration. Remaining tasks [<TaskInstance: task1 2018-08-08 15:13:02 [removed]>]
我正在使用 apache-airflow 1.8.1。 我现在应该做什么?
最佳答案
您可以在不使用 sub-dag 的情况下重新创建错误吗? Airflow 将每个子dag 视为一个顶点而不是整个图,因此当您更改一个任务时,它会更新子dag,但该更改不会传播回父 DAG。
Airflow 处理子标签的方式可能会产生意想不到的后果,因此社区中的大多数人建议远离它们。
关于重命名任务后 Airflow dag 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980124/