Airflow 每重试一次,重置一次执行超时

Airflow 每重试一次,重置一次执行超时,airflow,Airflow,我希望任务在启动12小时后失败,我已将执行超时设置为12小时: 操作员是SQLSensor,因为它有时会断开连接并失败,所以我将重试次数设置为3 但是,由于重试,任务在每次超时后都会重新开始 1:任务在10:00开始 2:22:00超时 3:然后任务在22:01再次开始 我不想这样,如何设置所有重试的总超时 log_sensor = SqlSensor( task_id='log_sensor', conn_id='mssql_etl', sql=my_query,

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

操作员是SQLSensor,因为它有时会断开连接并失败,所以我将重试次数设置为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)

我认为您需要使用
sla
kwarg,如本文文档中所述

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


事实上我不这么认为,我正在使用sla来处理文档中描述的警报邮件。当使用sla时,airflow发送一封警报邮件,任务继续执行,用于通知afaik。我想在一段时间后使任务超时,任务超时时应该失败。当我将重试次数设置为0时,它会执行我想要的操作。但任何时候都有失去联系的风险。因此,我必须将重试次数设置为大于0。当我设置重试时,超时后就变成了重试。啊,好的,我误解了你的要求。您是否考虑过按此处所述设置
dagrun\u超时
?谢谢,但它不符合我的要求,首先它是为了dag运行,但我需要一些任务的例子,而且我的dag不是计划的,它是为了计划的dag运行:(很高兴了解这一点,我可以使用它其他计划的dag:)谢谢。