LINUX.ORG.RU

запускать DAG каждый час в заданное число минут

 , ,


0

1

Нужно чтобы даг запускался каждый час в 15 минут. При этом не нужно просчитавыть интервал назад в прошлое. Казалось бы вот так нужно конфигурировать даг:

with DAG(
    # ...
    schedule_interval=timedelta(hours=1),
    start_date=days_ago(0, hour=0, minute=15),
    catchup=False,
    is_paused_upon_creation=False,
    # ...

Но, если даг запускается, например, в 15:43 то, он начинает выполняться в 15:43, 16:43, 17:43 .... Но, хотелось бы увидеть 16:15, 17:15, 18:15 ... Как это можно сделать?

Ответ на: комментарий от urxvt

Вот такой даг

  schedule_interval="15 * * * *",
  start_date=days_ago(0, hour=0, minute=0),
  catchup=False,
 is_paused_upon_creation=False,
пусканул в 17:55 МСК (14:55 UTC).

Хотелось бы, что бы даг запустился в 15:15 UTC. Но, вижу даг работает, и показывает LastRun=13:15 (UTC) и NextRun=13:15 (UTC), ничего не понятно

scisearcher
() автор топика
Последнее исправление: scisearcher (всего исправлений: 2)
Ответ на: комментарий от scisearcher

Airflow это не совсем cron, идея airflow заточена на обработку пачек данных, поэтому грубо говоря у DAG — два времени, есть время запуска и есть время данных, интервал для обработки которого DAG запустился.

Поэтому то что ты видишь в интерфейсе в Last Run, Next Run — это не время запуска, это data_interval — левая граница интервала времени для которого DAG был вызван или будет вызван.

https://airflow.apache.org/docs/apache-airflow/stable/dag-run.html#data-interval

Eshkin_kot ★★
()
Последнее исправление: Eshkin_kot (всего исправлений: 2)