Airflow - 获取 dag 运行的开始时间

Roa*_*ord 6 airflow apache-airflow

是否可以在 Airflow 中获取 dag 的实际开始时间?开始时间是指 dag 的第一个任务开始运行的确切时间。

我知道我可以使用宏来获取执行日期。如果作业是使用 trigger_dag 运行的,这就是我所说的开始时间,但如果作业按每日计划运行,则{{ execution_date }}返回昨天的日期。

我还尝试将其放入datetime.now().isoformat()dag 代码的正文中,然后将其传递给任务,但这似乎返回了首次调用任务的时间,而不是 dag 本身的启动时间。

Roa*_*ord 7

{{ dag_run.start_date }} 提供 dag 的实际开始时间


小智 6

这是一个老问题,但我正在回答它,因为接受的答案对我不起作用。{{ dag_run.start_date }}如果 DAG 运行失败并重试某些任务,则更改。

解决方案是使用:{{ dag_run.get_task_instance('start').start_date }}它使用第一个任务的开始日期(带有 task_id: 的 DummyOperator 任务start)。