#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, вместо привязки к общему интервалу.