如何获得dag状态,例如运行,成功或失败

时间:2019-11-07 03:39:13

标签: python-2.7 airflow

我想知道dag的状态是正在运行还是失败还是成功。我通过CL参数气流触发器触发dag,在执行作业后,我想知道运行状态。我找不到任何办法。

我尝试了dag_state气流,但没有响应。如果一天要运行多个以上命令以通过命令行参数或python代码获取最新运行状态,该怎么办。

2 个答案:

答案 0 :(得分:2)

您可以在CLI上使用list_dag_runs命令来列出给定dag ID的dag运行。返回的信息包括每次运行的状态。

您还可以通过几种不同的方式通过python代码检索信息。我过去使用的一种方法是'find' method in airflow.models.dagrun.DagRun

关于如何通过DagRun.find()获取dag_runs状态的python3示例:

dag_id = 'fake_dag_id'
dag_runs = DagRun.find(dag_id=dag_id)
for dag_run in dag_runs:
      print(dag_run.state)

答案 1 :(得分:0)

您可以使用以下CL

airflow dag_state dag_id execution_date

示例:

        airflow dag_state test_dag_id 2019-11-08T18:36:39.628099+00:00

在上面的示例中:

test_dag_id is the actual dag
2019-11-08T18:36:39.628099+00:00 is the execution date. You can get this from airflow UI for your run.

其他选项是使用airflow rest api插件。这是更好的选择。您可以触发DAG,还可以检查dag的状态。

https://github.com/teamclairvoyant/airflow-rest-api-plugin