我希望任务在启动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)
我认为您想要使用sla
kwarg,如这里的文档中所述https://airflow.apache.org/docs/1.10.2/code.html?highlight=task%20timeout
sla (datetime.timedelta(–预计作业成功的时间。请注意,这表示周期结束后的时间增量。例如,如果您将SLA设置为1小时,则如果2016-01-01实例尚未成功,则调度程序将在2016-01-02凌晨1:00后不久发送电子邮件。调度程序特别关注具有SLA的作业,并发送SLA未命中的警报电子邮件。SLA未命中也记录在数据库中,以备将来参考。共享相同SLA时间的所有任务都会捆绑在一封电子邮件中,并在该时间后不久发送。SLA通知发送一次,并且对于每个任务实例仅发送一次。