Почему пропуск потока воздуха schedule_interval * / 1 * * * * не удалось? - PullRequest
0 голосов
/ 06 июня 2019

Я устанавливаю поток воздуха в докере из apache / airflow (2.0.0 dev).код DAG, как это

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 голосов
/ 07 июня 2019

Вы выводите точное время и время выполнения команды bash. Это не точно на второй раз каждый раз. Если вы хотите, чтобы ваш dag выводил точное время, которое вы ожидали запустить, вы можете использовать

{{ ts }}

Чтобы получить метку времени с помощью шаблона дзиндзя. Это даст вам точное время, когда планировалось запустить даг. Это НЕ даст вам точного времени, когда DAG действительно работал.

...