Другие вопросы о "динамических задачах", похоже, направлены на динамическое построение DAG по расписанию или времени разработки. Мне интересно динамически добавлять задачи в DAG во время выполнения.
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
dag = DAG('test_dag', description='a test',
schedule_interval='0 0 * * *',
start_date=datetime(2018, 1, 1),
catchup=False)
def make_tasks():
du1 = DummyOperator(task_id='dummy1', dag=dag)
du2 = DummyOperator(task_id='dummy2', dag=dag)
du3 = DummyOperator(task_id='dummy3', dag=dag)
du1 >> du2 >> du3
p = PythonOperator(
task_id='python_operator',
dag=dag,
python_callable=make_tasks)
Эта наивная реализация, похоже, не работает - фиктивные задачи никогда не появляются в пользовательском интерфейсе.
Каков правильный способ добавления новых операторов в DAG во время выполнения? Возможно ли это?