使用:
default_args = {
...
'retries': 1,
'retry_delay': timedelta (seconds = 1),
...
}
我可以获得多次无法重试的任务,但是如果任务失败,DAG又重新开始,我怎么能得到它?
当然,自动......
答案 0 :(得分:1)
你可以运行第二次"失败检查" DAG使用provide_session
util查询db.currentOp()
匹配您所需的任何任务实例,状态为db.setProfilingLevel(level, options)
。然后,您还要选择清除下游任务,并将相关update public.dctable as s
set dc = 1
from (
select d.*,
min(time) over (partition by prod, customer, city, num) as mintime,
row_number() over (partition by prod, customer, city, num order by
time) as seqnum
from public.dctable d
) dclk
where dclk.seqnum <> 1 AND s.id=dclk.id
的状态设置为task_id
。
failed
答案 1 :(得分:1)
在 Airflow 中对此的规范解决方案是创建一个 subdagooperator,它将所有其他任务包装在 dag 中,并对其应用重试。
答案 2 :(得分:0)
您可以使用on_failure_callback
功能调用将重启DAG的python / bash脚本。 Airflow目前没有提供在任务失败时自动重启DAG的功能。