web-dev-qa-db-fra.com

Déclencher un DAG Airflow depuis un terminal ne fonctionne pas

J'essaie d'utiliser Airflow pour définir un flux de travail spécifique que je souhaite déclencher manuellement à partir de la ligne de commande. 

Je crée le DAG et ajoute un tas de tâches.

dag = airflow.DAG(
    "DAG_NAME",
    start_date=datetime(2015, 1, 1),
    schedule_interval=None,
    default_args=args)

Je cours ensuite dans le terminal

airflow trigger_dag DAG_NAME

et rien ne se passe. Le planificateur s'exécute dans un autre thread. Toute direction est très appréciée. Je vous remercie

17
amustafa

Je viens de rencontrer le même problème. 

En supposant que vous puissiez voir votre dag dans airflow list_dags ou via le serveur Web, alors:

Non seulement je devais activer le dag dans l'interface utilisateur Web, mais je devais aussi m'assurer que airflow scheduler était exécuté en tant que processus séparé.

Une fois le planificateur en marche, j'ai pu exécuter mon dag avec airflow trigger_dag <dag_id>

Ma configuration dag n'est pas très différente de la vôtre. J'ai aussi schedule_interval=None

27
neolytics

Vous avez peut-être désactivé le flux de travail . Pour activer le flux de travail manuellement. Ouvrez le serveur Web Airflow en 

$ airflow webserver -p 8080

Allez à http: // localhost: 8080 . Vous devriez voir la liste de tous les dags disponibles avec un bouton à bascule activé/désactivé. Par défaut, tout est désactivé. Recherchez votre dag et basculez votre flux de travail. Maintenant, essayez de déclencher le flux de travail depuis le terminal. Cela devrait fonctionner maintenant.

8
sidd607

assurez-vous d'abord que votre chaîne de connexion à la base de données sur le flux d'air fonctionne, qu'elle soit sur postgres, sqlite (par défaut) ou toute autre base de données. Puis lancez la commande

 airflow initdb

Cette commande ne doit pas afficher d’erreur de connexion 

Deuxièmement, assurez-vous que votre serveur Web fonctionne sur un thread séparé

airflow webserver

Puis lancez votre schdeuler sur un autre thread 

airflow scheduler

Enfin, déclenchez votre dag sur un autre thread après l'exécution du planificateur

airflow trigger_dag dag_id

Assurez-vous également que le nom du diagnostic et la tâche sont présents dans la liste des tâches et du diagnostic

airflow list_dags
airflow list_tasks dag_id

Et si le dag est désactivé dans votre interface utilisateur, activez-le.

3
Anmol Karki

Assurez-vous également que le DAG lui-même est activé dans l'interface utilisateur. 

0
ilana917