我希望任务在启动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)
答案 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通知。