Airflow 有没有办法让我知道DAG何时在气流中完成运行?
我正在运行一个脚本,该脚本在DAG运行之前检查我的数据库的状态,并将其与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操作符 其他选项是触发一个单
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)
此代码取自