Airflow 有没有办法让我知道DAG何时在气流中完成运行?

Airflow 有没有办法让我知道DAG何时在气流中完成运行?,airflow,Airflow,我正在运行一个脚本,该脚本在DAG运行之前检查我的数据库的状态,并将其与DAG运行完成后进行比较 def pre_dag_db pass def run_dag pass def post_dag_db pass 有没有办法让我知道DAG何时完成运行,以便我的脚本知道何时运行post_DAG_db?我的想法是,我的post_dag_db在我的dag完成运行后运行,因为dag操纵db。最简单的方法是将脚本作为dag中的最后一个任务运行,可能使用Bash操作符 其他选项是触发一个单

我正在运行一个脚本,该脚本在DAG运行之前检查我的数据库的状态,并将其与DAG运行完成后进行比较

def pre_dag_db
  pass

def run_dag
  pass

def post_dag_db
  pass

有没有办法让我知道DAG何时完成运行,以便我的脚本知道何时运行post_DAG_db?我的想法是,我的post_dag_db在我的dag完成运行后运行,因为dag操纵db。

最简单的方法是将脚本作为dag中的最后一个任务运行,可能使用Bash操作符

其他选项是触发一个单独的dag(TriggerDagRunOperator),然后实现一个调用脚本的dag


如果确实无法从Airflow本身调用脚本,则可能需要检查REST API并使用它们检索有关dag_运行的信息。但这对我来说似乎太复杂了。

快速简单的方法是在DAG中添加一个任务,它将作为DAG的最后一个任务工作/运行,这对您来说就像魔术一样


您可以使用任何操作符,如(PythonOperator、bash操作符等)。

我认为您可以使用以下代码:

dag = get_dag(args)
dr = DagRun.find(dag.dag_id, execution_date=args.execution_date)
print(dr[0].state if len(dr) > 0 else None)
此代码取自