气流执行时间超时,每次重试都会重置

时间:2018-12-18 10:03:55

标签: airflow

我希望任务在启动12小时后失败,我将execution_timeout设置为12小时:

Operator是SQLSensor,因为它有时会失去连接并失败,所以我将retries设置为3。

但是,由于重试,任务在每次超时后重新开始。

1:任务从10:00开始

2:22:00超时

3:然后任务从22:01重新开始

我不想要这个,如何设置所有重试的总超时时间?

log_sensor = SqlSensor(
    task_id='log_sensor',
    conn_id='mssql_etl',
    sql=my_query,
    retries=3,
    execution_timeout=timedelta(hours=12),
    dag=dag)

1 个答案:

答案 0 :(得分:0)

我认为您想使用sla虚假通知,如此处文档https://airflow.apache.org/docs/1.10.2/code.html?highlight=task%20timeout

所述

sla (datetime.timedelta) –预计作业成功的时间。请注意,这表示关闭时段后的时间增量。例如,如果您将SLA设置为1小时,则如果2016-01-01实例尚未成功,则调度程序将在2016年1月2日凌晨1:00后发送电子邮件。调度程序会特别注意使用SLA的作业,并会发送有关sla未命中的警报电子邮件。 SLA丢失也记录在数据库中,以备将来参考。共享相同SLA时间的所有任务都捆绑在一封电子邮件中,并在该时间之后不久发送。每个任务实例仅发送一次SLA通知。