Воздушный поток не может завершиться sh dag запускается, когда дата начала задачи превышает дату выполнения - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь реализовать DAG с несколькими задачами, имеющими разные даты начала. Согласно документации Airflow определенно что-то разрешено, но не уверен, что это правильный шаблон.

Вот пример Dag:

import datetime as dt
import os

from airflow.operators.dummy_operator import DummyOperator
from airflow.models import DAG, Variable


with DAG(DAG_ID, default_args={}, schedule_interval="0 4 * * *",) as dag:
    op1 = DummyOperator(start_date=dt.datetime(2019, 7, 1), task_id="op1", dag=dag,)

    op2 = DummyOperator(start_date=dt.datetime(2019, 7, 5), task_id="op2", dag=dag,)

Первый запуск DAG запланирован на 2019-07-01 и op1 выполняется без проблем, и, как ожидается, op2 не выполняется. Это поведение, которое я ожидаю. Однако планировщик не может перейти к следующему прогону даг на 2019-07-02, поскольку предыдущий прогон даг (на 2019-07-01) все еще находится в состоянии выполнения.

Есть ли какие-либо способ избежать этого поведения и автоматически установить выполнение запуска dag, когда все задачи с start_date < execution_date завершены?

Я запускаю воздушный поток 1.10.2 (но из некоторого простого теста ничего не меняется, переходя к последняя версия).

1 Ответ

0 голосов
/ 26 апреля 2020

Приведенный выше тег включает в себя как op1, так и op2, которые отличаются start_date.

Похоже, что вы хотите сделать так:

  • op1 должен запускаться ежедневно в 04 : 00 с 2019-07-01 года.
  • op2 должен работать ежедневно в 04:00 с 2019-07-05 года.

Я бы предложил

  • чтобы иметь двух отдельных даг .
  • или сделать их start_date одинаковыми.

Если вы не хотите go с этими два подхода, затем есть параметр для Дага, называемый max_active_runs, который может быть увеличен согласно вашей цели. Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...