我认为这里prev_execution_date列出的宏可以让我获得上次 DAG 运行的执行日期,但查看源代码似乎只能根据 DAG 计划获得最后日期。
prev_execution_date = task.dag.previous_schedule(self.execution_date)
Run Code Online (Sandbox Code Playgroud)
当 DAG 未按计划运行时,是否有任何方法可以通过宏获取 DAG 的执行日期?
我需要获取 Airflow 作业的最后两个成功执行日期以在当前运行中使用。示例:执行日期 作业状态 2020-05-03 成功 2020-05-04 失败 2020-05-05 成功
问题:当我在 5 月 6 日运行作业时,我应该将 5 月 3 日和 5 日的值放入变量中。是否可以?
我们有以下命令,我们可以清除失败的任务并一次尝试重新运行它们
airflow clear [-s START_DATE] [-e END_DATE] --only_failed dag_id
Run Code Online (Sandbox Code Playgroud)
有什么方法可以从所有 dags 中获取所有失败任务的信息并将其导出到文件(excel 或文本)中
我试过下面的代码,但我仍然遇到问题
from airflow.models DagModel
def get_latest_execution_date(**kwargs):
session = airflow.settings.Session()
f = open("/home/Insurance/InsuranceDagsTimestamp.txt","w+")
try:
Insurance_last_dag_run = session.query(DagModel)
for Insdgrun in Insurance_last_dag_run:
if Insdgrun is None:
f.write(Insdgrun.dag_id+",9999-12-31"+"\n")
else:
f.write(Insdgrun.dag_id+","+ Insdgrun.execution_date+"\n")
except:
session.rollback()
finally:
session.close()
t1 = PythonOperator(
task_id='records',
provide_context=True,
python_callable=get_latest_execution_date,
dag=dag)
Run Code Online (Sandbox Code Playgroud)
有什么方法可以修复和获取最新的 dag 运行时信息