Как определить Dag с учетом часового пояса, который будет запускаться в 5 часов ночи каждый день? - PullRequest
1 голос
/ 09 мая 2019

Я использую 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 * * * или что-то еще целиком?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Вы также можете написать это без 0-префикса.Нравится 5 0 * * *

0 голосов
/ 14 мая 2019

После некоторых экспериментов я пришел к выводу, что для того, чтобы dag работал в 5 часов ночи каждый день , мне нужно использовать интервал расписания 05 00 * * * вместе с дата начала с учетом часового пояса.

...