Группа баз данных обратной засыпки воздушного потока запускается с зависанием при выполнении первой задачи в очереди (сером) состоянии

#airflow-scheduler #airflow

#воздушный поток-планировщик #воздушный поток

Вопрос:

Я пытался просмотреть похожие ответы на stackoverflow для этой проблемы, однако мой случай немного отличается.

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

Похоже, планировщик никогда не запускает первую задачу.

У меня не depends_on_past=True установлено значение dag_defaults

 dag_defaults = {
    "start_date": datetime.today() - timedelta(days=2),
    "on_failure_callback": on_failure_callback,
    "provide_context": True
}
  

Я вынужден запускать каждую задачу вручную. 🙁 Вместо того, чтобы просто позволить планировщику идти своим чередом и запускать их автоматически.

Примечание: Я выполняю команды командной строки обратной засыпки через рабочие модули воздушного потока в кластере K8S.

Кто-нибудь еще сталкивался с подобной проблемой при использовании команд cli обратной засыпки?

ОБНОВЛЕНИЕ: я понял, что мои запуски обратной засыпки выходят за пределы общего интервала dag. Т. е. до того, как dag start_date вызвал зависимость от расписания блокировки.

Сведения об экземпляре задачи

Хотя вы все еще можете создать запуск, он не будет выполняться автоматически, но вы можете вручную запускать каждую задачу.

В качестве обходного пути необходимо было бы изменить start_date , чтобы это было до или в мою самую старую дату обратной засыпки.

Было бы неплохо, если бы существовал способ переопределить команду обратной заливки cmd или предоставить опцию —force, которая могла бы имитировать start_date для этого конкретного dag_run, вместо привязки к общему интервалу.

Комментарии:

1.Можете ли вы щелкнуть по своей задаче, нажать Сведения об экземпляре задачи и проверить Dependency Reason разделы? Должно привести вас в правильном направлении

2. @NadimYounes, спасибо, что помогли подтвердить мою проблему. Выполняемые мной задания обратной засыпки выходят за пределы start_date (интервал) базы данных, кажется, что обратная засыпка будет автоматически назначаться, только если она находится в пределах интервала, но позволяет запускать вручную, если она выходит за пределы этого интервала. Документы Airflow: The backfill command will re-run all the instances of the dag_id for all the intervals within the start date and end date.

3. Рад, что это помогло, удачи @Rogan88

4. Спасибо, я обновил вопрос.

Ответ №1:

ОБНОВЛЕНИЕ: я понял, что мои запуски обратной засыпки выходят за пределы общего интервала dag. Т.е. до start_date базы данных, вызывающего зависимость от расписания блокировки.

Хотя вы все еще можете создать запуск, он не будет выполняться автоматически, но вы можете вручную запускать каждую задачу.

В качестве обходного пути необходимо было бы изменить start_date , чтобы это было до или в мою самую старую дату обратной засыпки.

Было бы неплохо, если бы существовал способ переопределить команду обратной заливки cmd или предоставить опцию —force, которая могла бы имитировать start_date для этого конкретного dag_run, вместо привязки к общему интервалу.