У меня есть настройка воздушного потока, работающая с базой данных CeleryExecutor и Postre sql. Я запускаю производство с этим параметром, поэтому мне нужен рабочий и планировщик для одновременного запуска нескольких потоков.
Однако я также хочу выполнить обратную засыпку только одной задачи в диапазоне дат, не влияя на состояние чего-либо еще в dag.
Это пример dag:
default_args = {
'owner': 'user',
'start_date': datetime(2020, 3, 27),
'depends_on_past': True,
'wait_for_downstream': True
}
dag = DAG(
'test_dag1',
schedule_interval='00 16 * * *',
default_args=default_args,
catchup=False,
description='Running test_dag1',
)
dummy1 = BashOperator(
task_id="Dummy1",
bash_command="echo 0",
dag=dag
)
dummy2 = BashOperator(
task_id="Dummy2",
bash_command="echo Hello",
dag=dag
)
date_task = BashOperator(
task_id ="date_variables",
bash_command="echo World",
dag=dag
)
dummy1 >> dummy2 >> date_task
airflow backfill test_dag1 -t Dummy2 --reset_dagruns -I -s 2020-03-27 -e 2020-04-05
Приведенная выше команда будет учитывать зависимость в восходящем направлении и запускать Dummy1 и Dummy2 для диапазон дат. Этот прогон также учитывает значения depends_on_past=True
и wait_for_downstream=True
и запускает дагс последовательно от даты начала до даты окончания.
Однако я хочу игнорировать зависимость задачи Dummy2 от восходящего потока, а также запускать задачи последовательно от начальной даты до конечной даты.
airflow backfill test_dag1 -t Dummy2 -i --reset_dagruns -I -s 2020-03-27 -e 2020-04-05
Команда выше не уважает depends_on_past=True
и запускает все задачи одновременно, параллельно с помощью CeleryExecutor.
Существует ли способ последовательной обратной засыпки запускаемых задач в dag, но также игнорируются восходящие и нисходящие задачи, связанные с задачей
Любая помощь будет оценена.