Je suis actuellement confronté à un problème où mon travailleur Celery se bloque de temps en temps et doit être redémarré. J'ai une instance de Airflow à partir de laquelle je voudrais configurer et planifier un redémarrage en utilisant le BashOperator
ou SSHOperator
, mais je ne suis pas sûr de savoir comment procéder, car il est dans un conteneur Docker. Depuis le localhost je voudrais juste "docker restart worker", mais puisque Bash fonctionne à l'intérieur du conteneur airflow, je dois trouver un moyen de redémarrer via le flux d'air CLI ou SSH du conteneur à l'hôte, ce qui sonne terrible. Y a-t-il une manière élégante d'aborder ceci? Je vois que Flower a une API REST à partir de laquelle je peux redémarrer le pool, mais je dois avoir activé cela dans ma config de céleri. Il ressemble déjà à airflow is setting the config, est-il possible de surcharger cela?Comment faire pour redémarrer un ouvrier céleri dans le flux d'air
0
A
Répondre
0
D'accord, voilà ce que je fini par faire:
t1 = BashOperator(
task_id="celery_restart",
bash_command="celery multi restart 1",
dag=dag
)
n'a pas vraiment arrêter mes tâches de pendaison, mais il est :).