为什么气流dag schedule_interval * / 1 * * * *失败?

时间:2019-06-06 14:50:29

标签: scheduler airflow

我正在从apache / airflow(2.0.0 dev)设置docker airflow。像这样的代码

DAG_NAME='Simple_Dag_1'
default_args = {
    'owner': 'airflow',
    'depends_on_past': True,
    'start_date': utils.dates.days_ago(2)
}
dag = DAG(DAG_NAME, schedule_interval='*/1 * * * *', default_args=default_args)

run_this = BashOperator(
    task_id='run_this_first',
    bash_command='date >> /tmp/airflow.log',
    dag=dag,
)

我认为应该每分钟输出一次

22:26:00
22:27:00
22:28:00

但输出如下:

22:26:47
22:27:01
22:27:13
22:27:22
22:27:39
22:27:54
22:28:10
22:28:19
22:28:33
22:28:45

我更改了catchup = false,现在的顺序是:

Thu Jun  6 16:13:29 UTC 2019
Thu Jun  6 16:14:16 UTC 2019
Thu Jun  6 16:15:21 UTC 2019
Thu Jun  6 16:16:20 UTC 2019
Thu Jun  6 16:17:19 UTC 2019
Thu Jun  6 16:18:21 UTC 2019
Thu Jun  6 16:19:20 UTC 2019
Thu Jun  6 16:20:26 UTC 2019

现在它执行到1分钟,但是秒数还不够准确。我还缺少什么吗?

1 个答案:

答案 0 :(得分:0)

您正在输出bash命令运行的确切日期时间。并非每次都精确到秒。如果您希望dag输出您希望运行开始的确切时间,则可以使用

{{ ts }}

使用Jinja模板获取时间戳。这将为您提供dag计划运行的确切时间。它不会给您DAG实际运行的确切时间。