Я использую Apache Airflow 1.10.0 и хочу воспользоваться новой функцией Dag с поддержкой часовых поясов. Я должен признать, что планировщик Airflow немного сбивает с толку, и я не совсем уверен, как выполнить то, что я пытаюсь сделать. Я пытаюсь определить Dag, который будет запускаться в 5 часов ночи (восточное время) каждый день.
До сих пор я пытался определить Dag с учетом часового пояса start_date
, используя маятник. Мой интервал расписания timedelta(days=1)
. По какой-то причине это привело к прогонам в нечетное время 12:00 и т. Д.
Мое текущее определение Дага:
...
dag_tz = pendulum.timezone('US/Eastern')
default_args = {
'owner': 'airflow',
'email': '<email_address>',
'email_on_failure': True,
'email_on_retry': True,
'retries': 3,
'depends_on_past': False,
'retry_delay': timedelta(minutes=5),
'provide_context': True,
'start_date': datetime(2019, 5, 1, tzinfo=dag_tz)
}
dag = DAG('my_dag_id', default_args=default_args,
catchup=False, schedule_interval=timedelta(days=1))
...
Мне бы хотелось, чтобы Даг работал в одно и то же время каждый день. Я видел, что могу использовать выражение cron для schedule_interval
, но это также сбивает с толку, потому что я не уверен, нужно ли мне включать смещение UTC в выражение cron или если факт, что Dag осведомлен о timzeone, примет позаботься об этом.
Например, должен ли мой schedule_interval быть 05 04 * * *
или 05 00 * * *
или что-то еще целиком?