воздушный поток никогда не запускается с динамической c start_date - PullRequest
0 голосов
/ 09 апреля 2020

Я установил аргументы Дага так:

today = datetime.now().date()
default_args = {'owner': 'Mark',
                'depends_on_past': False,
                'start_date': datetime(today.year,today.month,today.day,10,0),
                'retries': 3,
                'retry_delay': timedelta(minutes=10),
                'schedule_interval': '@daily'}

Намерение состояло в том, чтобы начинать работу каждый раз в 10 часов утра. Тем не менее, я считаю, что с тех пор ничего не сработало.

Я что-то здесь не так делаю?

Спасибо!

1 Ответ

1 голос
/ 09 апреля 2020

Да, это неправильная настройка. start_date должен быть фиксированным и никогда не определяться динамически. Это явно указано в официальном FAQ по Airflow ( Что такое start_date):

Мы рекомендуем не использовать значения Dynami c в качестве start_date, особенно datetime.now() как это может быть довольно запутанным. Задание запускается после закрытия периода, и в теории @hourly DAG никогда не достигнет часа спустя, когда now() движется вперед.

Вы должны поставить фиксированное значение start_date ( в прошлом), а затем установите schedule_interval как выражение cron, означающее «каждый день в 10» (т. е. "0 10 * * *"). Я хотел бы сделать что-то вроде этого:

default_args = {'owner': 'Mark',
                'depends_on_past': False,
                'start_date': dt.datetime(2020, 4, 8)
                'retries': 3,
                'retry_delay': timedelta(minutes=10),
                'schedule_interval': '0 10 * * *'}

Для получения дополнительной информации о start_date и schedule_interval см. Официальную документацию, в частности, о Планирование и триггеры .

...