重新运行Airflow Subdag的一部分

时间:2018-01-18 22:01:17

标签: airflow airflow-scheduler

我每天都有一个包含子标记的Dag。子标签有五个任务,T1到T5,必须按顺序运行(例如T1>> T2>> T3>> T4>> T5)

dag成功运行了几天但后来我发现了T4的一个错误。我修复了这个错误,想要重新运行前几天的T4和T5。重新运行T1-T3非常重要,因为这些步骤比T4-T5需要更长的时间。

我尝试过的失败了:

  1. 选择T4,清除下游+递归 - 没有任何反应。 Dag树视图将子标签显示为"成功"即使其中的T4和T5被清除。
  2. 选择T4,清除下游+递归,选择子标记,清除该任务 - 即使T1-T3标记为成功,也将重新运行整个子标记(T1-T5)
  3. 选择T4,清除下游+递归,选择子标记,单击运行 - 与#2相同。重新运行整个子标记。
  4. 选择T4,清除下游+递归,手动将子标签设置为"运行"州。什么都没发生。树视图显示"运行"中的子标记。状态,但实际上没有任务被运行。
  5. 在尝试重新运行部分子标记时,这似乎只是一个问题。如果我在常规dag中有一堆任务,通常在中间选择一个任务并选择clear downstream + recursive将从该点重新运行dag。

    任何建议将不胜感激。

2 个答案:

答案 0 :(得分:8)

您可以重新启动subDAG中失败的任务,方法是:

  • 放大到subDAG,清除失败任务的状态。
  • 返回主DAG,选择subDAG。
  • 取消选中递归和/或下游。
  • subDAG的清除状态。

答案 1 :(得分:0)

我使用此命令成功运行subdag,希望它可以帮助某人:

气流回填dag_name.subdag_name -s 2018-05-31 -e 2018-05-31 --reset_dagruns