Gestion des pertes de connexion avec RabbitMQ
Les moteurs ne gèrent pas correctement la perte de la connexion avec RabbitMQ.
Pour tester : lancer un environnement go avec docker, et interrompre RabbitMQ avec docker-compose kill rabbitmq
. Les moteurs continuent à tourner, et il n'y a pas de reconnexion quand RabbitMQ est relancé.
Quand la connexion a RabbitMQ est coupée, le chan
utilisé par les moteurs go (défini ici par exemple) reçoit des messages vides en continu. Alexandre a fait une MR (!226 (closed)) détectant les messages vides, et quittant le moteur quand il y en a un.
Sauf erreur de ma part ce comportement n'est pas mentionné dans la documentation de la bibliothèque amqp, donc ça me gêne un peu de se baser dessus pour la gestion d'erreurs.
Un exemple gérant correctement les reconnexions est livré avec la bibliothèque AMQP, je pense qu'il faut s'en inspirer.