web-dev-qa-db-fra.com

Le planificateur de flux d'air ne semble pas fonctionner après l'exécution d'une tâche

Lorsqu'une tâche est en cours d'exécution, Airflow affiche un avis indiquant que le planificateur ne semble pas être en cours d'exécution et il continue de s'afficher jusqu'à la fin de la tâche:

The scheduler does not appear to be running. Last heartbeat was received 5 minutes ago.

The DAGs list may not update, and new tasks will not be scheduled.

En fait, le processus du planificateur est en cours d'exécution, car j'ai vérifié le processus. Une fois la tâche terminée, l'avis disparaîtra et tout redeviendra normal.

Ma tâche est assez lourde, peut durer quelques heures. J'apprécie toute aide. Merci d'avance.

12
DennisLi

Je pense que c'est prévu pour Sequential Executor. Sequential Executor exécute une chose à la fois, il ne peut donc pas exécuter les pulsations et les tâches en même temps.

Pourquoi avez-vous besoin d'utiliser Sequential Executor/Sqlite? Les conseils pour passer à un autre DB/Executor sont parfaitement logiques.

1
Jarek Potiuk

J'ai eu le même problème. Je passe à postgresql en mettant à jour airflow.cfg fichier> sql_alchemy_conn =postgresql+psycopg2://airflow@localhost:5432/airflow et executor = LocalExecutor

Ce lien peut aider à configurer cela localement https://medium.com/@taufiq_ibrahim/Apache-airflow-installation-on-ubuntu-ddc087482c14

1
as - if

J'ai eu le même problème lors de l'utilisation de sqlite. Il y avait un message spécial dans les journaux Airflow: ERROR - Cannot use more than 1 thread when using sqlite. Setting max_threads to 1. Si vous n'utilisez qu'un seul thread, le planificateur ne sera pas disponible lors de l'exécution d'un dag.

Donc, si vous utilisez sqlite, essayez de basculer vers une autre base de données. Sinon, cochez max_threads valeur dans votre airflow.cfg.

0
amoskaliov

Vous avez commencé airflow webserver et vous n'avez pas commencé votre airflow scheduler. Exécutez le planificateur de flux d'air en arrière-plan

airflow scheduler > /console/scheduler_log.log &
0
Ganesh