Débit d'air: Créer DAG partir d'un fichier distinct

0

La question

Dans la circulation de l'air, je suis en train de faire une fonction qui est dédiée à générer des DAGs dans un fichier:

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

Puis dans un autre fichier que je suis en train d'importer le gcd à partir d'un autre fichier:

load_dags.py:

from dynamic_dag import generate_dag
globals()["Dynamic_DAG_A"] = generate_dag('A')

Cependant, les dags ne sont pas affichés sur l'INTERFACE web. Mais si je les fais dans un seul fichier comme ci-dessous de code, ça marche:

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')

Je me demandais pourquoi le faire dans deux fichiers distincts ne fonctionne pas.

airflow airflow-scheduler
2021-11-21 00:44:01
1

La meilleure réponse

1

Je pense que si vous utilisez la circulation de l'Air 1.10, puis le groupe de fichiers doivent contenir DAG et airlfow:

https://airflow.apache.org/docs/apache-airflow/1.10.15/concepts.html?highlight=airflowignore#dags

Lors de la recherche pour les DAGs, la circulation de l'Air ne considère que les fichiers python qui contiennent les chaînes “air” et “DAG” par défaut. Pour examiner tous les fichiers python au lieu de cela, désactiver le DAG_DISCOVERY_SAFE_MODE indicateur de configuration.

Dans le flux d'Air 2 qu'il a été modifié (légèrement - dag est insensible à la casse):

https://airflow.apache.org/docs/apache-airflow/2.2.2/concepts/dags.html

Lors de la recherche pour les DAGs à l'intérieur de la DAG_FOLDER, la circulation de l'Air ne considère que les fichiers Python qui contiennent les chaînes de la circulation de l'air et de dag (cas insensiblement) comme une optimisation. Pour examiner tous les fichiers Python au lieu de cela, désactiver le DAG_DISCOVERY_SAFE_MODE indicateur de configuration.

Je pense que vous simplement miss", la circulation de l'air dans votre load_dags.py. Vous pouvez ajouter la mesure - y compris les commentaires.

2021-11-21 19:02:47

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................