我如何检查何时为特定的dag计划了下一次Airflow DAG运行?

时间:2018-09-07 02:50:21

标签: python scheduled-tasks airflow

我已经设置了气流并运行了一些DAG,这些DAG计划每天一次“ 0 0 * * *”。

我想检查什么时候下一次特定的dag被安排运行,但是我看不到在管理员中可以在哪里进行。

4 个答案:

答案 0 :(得分:6)

在气流 2.0.0 版本中,在命令行上可以找到下一个执行 with

airflow dags next-execution <dag_id>

答案 1 :(得分:2)

enter image description here

使用气流Web服务器用户界面中的 Schedule Last Run 列进行计算。

此外,您可以尝试此端点

curl http://localhost:8000/api/experimental/latest_runs

它给您类似的结果

{
  "items": [
    {
      "dag_id": "evaluate_discount_strategy",
      "dag_run_url": "/admin/airflow/graph?dag_id=evaluate_discount_strategy&execution_date=2019-05-06+15%3A17%3A56.641027%2B00%3A00",
      "execution_date": "2019-05-06T15:17:56.641027+00:00",
      "start_date": "2019-05-06T15:17:56.655972+00:00"
    },
    {
      "dag_id": "target_steering",
      "dag_run_url": "/admin/airflow/graph?dag_id=target_steering&execution_date=2019-05-17+09%3A36%3A21.644039%2B00%3A00",
      "execution_date": "2019-05-17T09:36:21.644039+00:00",
      "start_date": "2019-05-17T09:36:21.659580+00:00"
    }
  ]
}

然后将schedule时间添加到start_date以获得下一次运行。

此api也可用于获取给定时间之间的运行日期。

    def get_run_dates(self, start_date, end_date=None):
        """
        Returns a list of dates between the interval received as parameter using this
        dag's schedule interval. Returned dates can be used for execution dates.

        :param start_date: the start date of the interval
        :type start_date: datetime
        :param end_date: the end date of the interval, defaults to timezone.utcnow()
        :type end_date: datetime
        :return: a list of dates within the interval following the dag's schedule
        :rtype: list
        """    

Official Doc Link

答案 2 :(得分:1)

如果要使用Airflow的{​​{1}},则有next_execution option

  

获取DAG的下一个执行日期时间。

CLI

答案 3 :(得分:0)

如果您想在气流中获取此信息,则可以使用jinja {{ next_execution_date }},但如果您只是想知道dag下次运行的时间,则可以在上一次运行时添加间隔

例如

来自下图

enter image description here

计划间隔为15分钟,最后一次运行是在2018-09-07 08:32,因此下一次运行恰好是15分钟后,即2018-09-07 08:47