Hava akışında, bir dosyada DAG oluşturmak için ayrılmış bir işlev yapmaya çalışıyorum:
dynamic_dags.py:
def generate_dag(name):
with DAG(
dag_id=f'dag_{name}',
default_args=args,
start_date=days_ago(2),
schedule_interval='5 5 * * *',
tags=['Test'],
catchup=False
) as dag:
dummy_task=DummyOperator(
task_id="dynamic_dummy_task",
dag=dag
)
return dag
Sonra başka bir dosyada dag'leri ayrı bir dosyadan içe aktarmaya çalışıyorum:
load_dags.py:
from dynamic_dag import generate_dag
globals()["Dynamic_DAG_A"] = generate_dag('A')
Ancak, dag'ler web kullanıcı Arayüzünde gösterilmez. Ancak bunları aşağıdaki kod gibi tek bir dosyada yaparsam işe yarar:
def generate_dag(name):
with DAG(
dag_id=f'dag_{name}',
default_args=args,
start_date=days_ago(2),
schedule_interval='5 5 * * *',
tags=['Test'],
catchup=False
) as dag:
dummy_task=DummyOperator(
task_id="dynamic_dummy_task",
dag=dag
)
return dag
globals()["Dynamic_DAG_A"] = generate_dag('A')
Bunu neden iki ayrı dosyada yapmanın işe yaramadığını merak ediyorum.