Python 在气流中,如果出现故障,是否有方法重复一组任务?

Python 在气流中,如果出现故障,是否有方法重复一组任务?,python,airflow,Python,Airflow,在我的DAG中,我有这样一个任务流: ... >> EmrAddStepsOperator >> EmrStepSensor EmrAdsTepsOperator的成功意味着“我能够告诉EMR启动”。EmrStepSensor的失败意味着“EMR任务出现了问题。”我可能对这些描述有点不理解,但这与我想表达的观点无关: 如果第二个任务失败,我想重新启动第一个任务,而不是第二个任务。当第二个任务失败时,如何让气流重新启动第一个任务?我想你可以很容易地将两个操作符放在subd

在我的DAG中,我有这样一个任务流:

... >> EmrAddStepsOperator >> EmrStepSensor
EmrAdsTepsOperator的成功意味着“我能够告诉EMR启动”。EmrStepSensor的失败意味着“EMR任务出现了问题。”我可能对这些描述有点不理解,但这与我想表达的观点无关:


如果第二个任务失败,我想重新启动第一个任务,而不是第二个任务。当第二个任务失败时,如何让气流重新启动第一个任务?

我想你可以很容易地将两个操作符放在subdag操作符中,并在subdag操作符上设置重试参数。

我想你可以很容易地将两个操作符放在subdag操作符中,并在subdag操作符上设置重试参数操作员。

我确认,除了编写自定义的
EmrAddStepsBlockingOperator
(它是
EmrAddStepsOperator
EmrStepSensor
的融合)之外,没有直接的方法可以实现这一点。看见小贴士:你可以考虑用这个,但是当我试过的时候,我碰到了Y2K舒巴姆HM,这很有趣。当我说我想要这样的东西时,我是不是想错了?我无法想象传感器会出现故障,而您不需要EmraddSepsOperator重试的场景。一个非常不整洁的解决方案是让DAG将所有失败的任务推送到外部存储,作为另一个DAG的输入。所以实际上,每天第二个DAG都会选择在第一个DAG中失败的任务并重新运行它们;第二个DAG的结构将是动态的(取决于第一个DAG中失败的任务数量)。阅读
UPDATE-1
第一部分,确认除了编写自定义
EmrAddStepsBlockingOperator
(它是
EmrAddStepsOperator
EmrStepSensor
的融合)之外,没有直接的方法可以实现这一点。看见小贴士:你可以考虑用这个,但是当我试过的时候,我碰到了Y2K舒巴姆HM,这很有趣。当我说我想要这样的东西时,我是不是想错了?我无法想象传感器会出现故障,而您不需要EmraddSepsOperator重试的场景。一个非常不整洁的解决方案是让DAG将所有失败的任务推送到外部存储,作为另一个DAG的输入。所以实际上,每天第二个DAG都会选择在第一个DAG中失败的任务并重新运行它们;第二个DAG的结构将是动态的(取决于第一个DAG中失败的任务数量)。阅读
UPDATE-1
部分