Расписание Apache Airflow dag в полночь по всемирному координированному времени

Я создал Apache Airflow DAG со следующими аргументами по умолчанию. Я хочу, чтобы этот DAG запускался каждый день в 22:00 по всемирному координированному времени, но он всегда работает в 12:00 по всемирному координированному времени и игнорирует дату, установленную мной в start_date. Разве это не правильный путь? Спасибо.

default_args = {
    'owner': config.OWNER,
    'depends_on_past': False,
    'start_date': datetime(2018, 10, 14, 22, 0, 0),
    'email': [config.ALERT_EMAIL],
    'email_on_failure': True,
    'email_on_retry': False,
    'retry_delay': timedelta(minutes=1),
    'retries': 2,
}

# DAG
dag = DAG('Test',
          default_args=default_args,
          description='Initial setup',
          schedule_interval='@daily')

person Spark user    schedule 16.10.2018    source источник


Ответы (2)


Вы также можете использовать формат cron в своем schedule interval аргументе следующим образом :

# DAG
dag = DAG('Test',
          default_args=default_args,
          description='Initial setup',
          schedule_interval='0 22 * * *')
person efbbrown    schedule 17.10.2018

Что касается schedule_interval, у вас есть как минимум три варианта:

  • datetime.timedelta

  • dateutil.relativedelta

  • строка в стиле cron

schedule_interval определяет, как часто запускается этот DAG. Этот объект timedelta добавляется к дате выполнения последнего экземпляра задачи, чтобы определить следующее расписание. И имейте в виду, что: start_date для задачи определяет дату выполнения для первого экземпляра задачи.

person andilabs    schedule 26.08.2019