Development #4577
Notification en push des programmes agents
0%
Description
Pour le moment les agents sont nécessairement en mode polling du serveur, ça pourrait être bien chouette d'avoir un fonctionnement en push.
Fichiers
Historique
Mis à jour par Frédéric Péters il y a presque 10 ans
- Projet changé de Portail admin à Hobo
- Patch proposed mis à Non
Mis à jour par Frédéric Péters il y a presque 10 ans
- Fichier 0001-use-celery-to-push-notification-changes-to-agents-45.patch 0001-use-celery-to-push-notification-changes-to-agents-45.patch ajouté
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
C'est une expérimentation très basique à base de celery; l'idée est simplement d'envoyer un message en broadcast dès qu'il y a une modif, ce sur quoi les workers installés sur les différents serveurs exécutent les différents agents (par un bête os.system).
Sauf erreur le nécessaire est en place dans le patch pour que la dépendance soit optionnelle, il reste tout à fait possible aux agents d'être exécutés via un job cron.
Pour tester j'ai dans ma configuration locale ceci :
HOBO_AGENT_COMMANDS = [ '/home/fred/src/eo/wcs/wcsctl.py -f /home/fred/src/eo/wcs/wcs.cfg check-hobos http://127.0.0.1:8000/', ]
Et je démarre ensuite un worker en local via "celery -A hobo.agent worker -l info -n foo" (et un deuxième pour vérifier le broadcast, avec -n bar).
Quand on aura via #5106 des bases communes pour le déploiement en tenants de nos applications, il y a du code qui pourra être partagé, plutôt que cet appel à os.system() mais l'idée me semble déjà convenir.
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
Question de béotien: comment se fait la diffusion ? y-a-t-il un RabbitMQ à faire tourner quelque part ?
Mis à jour par Frédéric Péters il y a presque 10 ans
Ouaip, en local sans config, ou ailleurs en positionnant BROKER_URL ('amqp://guest:guest@localhost:5672//' est la valeur par défaut).
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Fichier 0001-use-celery-to-push-notification-changes-to-agents-45.patch 0001-use-celery-to-push-notification-changes-to-agents-45.patch ajouté
- Fichier 0001-hobos-defer-much-to-hobo-itself-gets-data-from-stdin.patch 0001-hobos-defer-much-to-hobo-itself-gets-data-from-stdin.patch ajouté
Patch modifié pour envoyer la config via celery, ce qui évite un http get à l'agent.
Ce patch intègre aussi du code de déploiement, la base pour quelque chose de générique (quand le ticket "multi tenant sans modèle" sera terminé) ainsi que du spécifique pour wcs (ce qui réduit le code dans son agent (second patch)).
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Fichier 0001-use-celery-to-push-notification-changes-to-agents-45.patch 0001-use-celery-to-push-notification-changes-to-agents-45.patch ajouté
Correction d'un bug dans le environment/views.py, suite au déplacement d'une fonction vers le utils.py. Pas d'autre changement.
Mis à jour par Thomas Noël il y a plus de 9 ans
pour le coup, le HOBO_AGENT_COMMANDS n'a plus de raison d'être dans le settings.py, non ?
A part ça, c'est ok !
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Statut changé de En cours à Résolu (à déployer)
Non, plus de raison d'être, je la supprime.
commit 8404eef58b012882447c8589dd3e14378493c6f4 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Jul 23 11:08:14 2014 +0200 use celery to push notification changes to agents (#4577)
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Statut changé de Résolu (à déployer) à Fermé