如果dagrun失败,我会感到困惑。我想要实现的行为是:
这些是我的dag参数和任务参数:
任务默认值:
'depends_on_past': True,
'start_date': airflow.utils.dates.days_ago(2),
'email': ['[email protected]'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
'wait_for_downstream': False,
日参数:
schedule_interval=timedelta(minutes=60),
catchup=False,
max_active_runs=1
我认为我误解了其中的一些论点,因为在我看来,如果一个任务失败n次(即dagrun失败),那么下一个dagrun会被安排,但只是永远处于运行状态,没有进一步的dagruns成功(或甚至得到预定)。例如,这里是dagruns(我不知道在哪里可以找到像this question这样的基于文本的调度程序日志),其中dag计划每5分钟而不是每小时运行一次:
执行每5分钟运行一次,直到失败,之后最后一次执行才处于运行状态,并且在过去的30分钟内一直如此。
我做错了什么?
我应该补充一点,重新启动调度程序没有帮助,也没有手动将该运行任务设置为失败...
您将depends_on_past
设置为True,这会阻止下一个DagRun启动。
From the docs:depends_on_past(bool) - 当设置为true时,任务实例将依次运行,同时依赖上一个任务的计划成功。允许start_date的任务实例运行。
这意味着您的Dag正在尝试运行,但它正在等待前一个DagRun中的相应任务具有成功状态。