Примечание: ссылки crontab.guru ломались, поэтому я обернул их в блоки кода.
У меня есть DAG, которая должна быть выполнена по понедельникам в полночь тихоокеанского времени, 8:00 UTC, увеличена на 1 минуту доизбегайте проблем с перекрытием.
Первоначально интервал расписания был установлен как 1 8 */1 * 1
, что в соответствии с https://crontab.guru/#1_8_*/1_*_1
равно "В 08:01 UTC (03:01 EST, 00:01 PST) в каждый день-месяц, если это в понедельник ".
Однако это приводило к тому, что DAG запускался каждый день в 08:01 UTC;условие понедельника, казалось, игнорировалось.
Интервал расписания был обновлен до более простого 1 8 * * 1
, что в соответствии с https://crontab.guru/#1_8_*_*_1
равно "В 08:01 UTC (03:01 EST, 00:01 PST)в понедельник ".
Это остановило выполнение DAG каждый день, но не сработало в 2019-02-18, первый понедельник, следующий за обновлением.Я читал некоторые другие сообщения, которые указывают, что дата начала может вызвать эту проблему, но дата начала этой задачи datetime(2019, 2, 11, 0, 0, 0, 0, pytz.UTC)
, то есть за два интервала до даты запуска 2019-02-18.
Вотполное определение группы доступности базы данных / задачи (без импорта или определенных имен):
dag = DAG(
dag_id="dag",
description="dag",
# At 08:01 UTC (03:01 EST, 00:01 PST) on Monday
# (https://crontab.guru/#1_8_*_*_1)
schedule_interval="1 8 * * 1",
catchup=False,
)
task = PythonOperator(
task_id="handle",
provide_context=True,
python_callable=handle,
dag=dag,
retries=2,
retry_delay=timedelta(minutes=15),
start_date=datetime(2019, 2, 11, 0, 0, 0, 0, pytz.UTC),
)
Есть идеи, почему это не будет выполнено после интервала UTC 2019-02-18 ?: