Мне интересно, как именно airflow backfill
работает, так как это поможет объяснить некоторые проблемы, которые у меня возникли с Airflow. Это просто запуск какого-то процесса планировщика, который не учитывает остальные группы обеспечения доступности баз данных и переопределяет start_date и end_date? Или это нечто большее?
Мой вариант использования: иногда я хочу перезапустить неделю для одного DAG, обычно, когда я добавляю в него новые функции. Для этого я использую CLI (airflow clear
), чтобы очистить экземпляры задачи на нужные даты. Но иногда я могу передумать, думая, что сейчас не время для повторного запуска на этой неделе. Поэтому я приостанавливаю работу группы обеспечения доступности баз данных и использую команду airflow backfill -m
, чтобы установить очищенные экземпляры задачи как успешные.
Когда я делаю это, соответствующие экземпляры задач переходят в состояние «неработоспособности» относительно поведения catchup=True
. Если я удаляю их снова, они никогда не планируются, хотя их прогон DAG находится в состоянии «выполняется» (они сохраняют состояние «Нет»). Я сделал несколько тестов, и я на 90% уверен, что виновником является airflow backfill
.
В конце концов, кажется логичным, что я не должен использовать airflow backfill
в группе обеспечения доступности баз данных, которая имеет catchup=True
, но это мой единственный способ отмечать успех для большого набора экземпляров задач. Кто-нибудь знает, изменяет ли эта команда состояние выполнения DAG, appart от установки его до запуска? У меня почему-то возникает ощущение, что он заменяет свои настройки захвата.