Мой DAG с воздушным потоком и оператор не делают то, что я ожидал - PullRequest
0 голосов
/ 31 мая 2018

edit: я разобрался в своей проблеме.Я не понимал разницы между запуском прогона и его немедленным запуском, его включением и разрешением выполнять свою работу.Код в порядке.

Я написал эту простую программу, чтобы выяснить поток воздуха.В час он должен распечатать в файл "hello world", но он делает это немедленно.Кто-то видит, где я иду не так?

def print_hello():
    f = open('helloword.txt','a')
    f.write( 'Hello World!')
    f.close()

dag = DAG('hello_world', description='Simple tutorial DAG', schedule_interval='@hourly',
          start_date=datetime(2018, 5, 31), catchup=False)


hello_operator = PythonOperator(task_id='hello_task', python_callable=print_hello, dag=dag)

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Дата начала - 2018-05-31, а интервал расписания - @hourly, поэтому дата выполнения для первого запуска обычно будет 2018-05-31T00:00:00 с датой начала> = ~ 2018-05-31T01:00:00.

В этом случае вы установили для catchup значение false, поэтому вместо него будет создан только самый последний прогон DAG.Я ожидаю, что созданный прогон DAG будет 2018-05-31T21:00:00 прямо сейчас.

Текущее время UTC сейчас 2018-05-31T22:00:00.Поскольку отметка даты начала 2018-05-31T00:00:00 уже в прошлом, планировщик воздушного потока будет планировать и запускать задачу немедленно.

Можно удалить прогоны DAG и экземпляры задачи, а затем изменить дату начала на 2018-06-01, еслиВы хотите, чтобы это началось завтра завтра.В этом случае он не запустится сразу, если вы выберете дату начала в будущем.

Здесь вы можете найти немного больше информации о том, как работает планировщик:

0 голосов
/ 31 мая 2018

Ваш код выглядит хорошо для меня.Видите ли вы какие-нибудь строки, добавленные к файлу, если вы выключили DAG?

Я думаю, что вы видите выполнение запущенной засыпки.Вы ставите дату начала сегодня, неявно в полночь.Поэтому воздушный поток будет догонять и запускать эти прогоны DAG, прежде чем запускать задачу каждый час.

...