web-dev-qa-db-fra.com

Comment arrêter/supprimer les tâches Airflow à partir de l'interface utilisateur

Comment puis-je arrêter/tuer une tâche en cours sur l'interface utilisateur d'Airflow? J'utilise LocalExecutor. Même si j'utilise CeleryExecutor, comment puis-je tuer/arrêter la tâche en cours?

14
Chetan J

Dans l’écran des DAG, vous pouvez voir les tâches en cours:

 enter image description here

Exemple

Sur "Recent Tasks", appuyez sur l'icône en cours d'exécution et Airflow exécute automatiquement la requête de recherche avec les filtres correspondant à "ID de site et d'état" et affiche les résultats sur l'écran Tâches en cours (vous pouvez le trouver manuellement dans > Instances de tâches).

Là, vous pouvez sélectionner les tâches présentées et les définir dans un autre état ou les supprimer. 

Veuillez noter que si le DAG est en cours d’exécution, le planificateur d’airflow reprendra les tâches que vous supprimez. Donc, vous devez tout d'abord arrêter le DAG en modifiant son état ou arrêter le planificateur (si vous exécutez un environnement de test).

9
Jorge Almeida

de flux d'air gitter (@villasv)

Pas gracieusement, non. Vous pouvez arrêter un dag (décocher en cours d'exécution) et effacer les états des tâches, voire même les supprimer dans l'interface utilisateur. Les tâches en cours d'exécution dans l'exécuteur ne s'arrêtent pas, mais peuvent être tuées si l'exécuteur se rend compte que ce n'est plus dans la base de données .

3
Pablo

Comme le soulignent Pablo et Jorge, le Dag n’arrête pas l’exécution de la tâche si l’exécution a déjà commencé. Cependant, il existe un moyen d'arrêter une tâche en cours à partir de l'interface utilisateur, mais c'est un peu hacky.

Lorsque la tâche est à l'état running, vous pouvez cliquer sur CLEAR pour appeler job.kill(). La tâche sera définie sur shut_down et déplacée vers up_for_retry immédiatement, d'où son arrêt.

Clairement, Airflow ne vous permettait pas d'effacer des tâches dans l'état Running. Toutefois, étant donné qu'Airflow ne l'a pas désactivé, vous pouvez l'utiliser comme je l'ai suggéré. Airflow signifiait que CLEAR devait être utilisé avec failed, up_for_retry etc ... Peut-être que dans le futur la communauté utilisera ce bogue (?) Et l'implémentera en tant que fonctionnalité avec le bouton "Fermer la tâche".

1
Luis