Bonjour, je suis en train de créer un site de forum.
J’ai essayé de modifier les paramètres du site et de rafraîchir la page, mais je n’arrive pas à obtenir les nouvelles valeurs de manière intermittente.
Chaque rafraîchissement semble afficher les valeurs mises en cache précédemment.
J’ai ajusté le nombre de workers Puma, mais cela ne change rien.
La valeur modifiée est bien enregistrée dans la base de données.
Est-ce un problème lié à message_bus ?
Si oui, comment dois-je modifier la configuration ?
Je constate la même chose. Si je définis le nombre de workers Puma à 1, le problème disparaît. Il semble que chaque worker conserve une copie de l’objet des paramètres du site, et lorsqu’un worker effectue une mise à jour, les autres workers n’en sont jamais informés.
Malheureusement, ce problème se produit également dans un environnement étendu avec plusieurs serveurs Discourse, donc réduire simplement le nombre de workers à 1 ne constitue pas une solution complète.
Je tente de développer un plugin, j’ai donc suivi le lien dans le README pour configurer un environnement de développement Ubuntu. Lorsque j’exécute la commande bundle exec rails server --binding=0.0.0.0, l’application démarre avec Puma.
La seule chose de ce genre que j’ai vue, c’est que si le serveur est arrêté, le navigateur renvoie parfois un fichier JSON ou la version mise en cache du site.
Le serveur est-il toujours en cours d’exécution ?
Une autre chose que je fais, c’est d’ouvrir un autre terminal et d’exécuter
./bin/rails c
Et de modifier les paramètres là-bas avec quelque chose comme
Le serveur est toujours en cours d’exécution. J’ai vérifié dans les journaux que Discourse traite la requête. J’ai également désactivé le cache dans la console de développement de mon navigateur pendant le débogage de ce problème.
Pourquoi mettez-vous votre environnement à l’échelle horizontale pendant le développement d’un plugin ?
Les symptômes indiquent que votre MessageBus interne est défaillant, ce qui signifie qu’il y a un problème avec votre configuration Redis. Les mises à jour en direct dans le navigateur peuvent également être perturbées.
Je ne cherchais pas à étendre la portée pour le développement de plugins, je testais simplement cela dans plusieurs scénarios différents afin de mieux cerner mon problème et de m’assurer de bien le comprendre. Si le MessageBus est censé gérer cela, je vais approfondir cette piste.
Pendant le débogage, j’ai remarqué que app/models/site_setting.rb déclenche toujours un événement :site_setting_saved, qui semble avoir été supprimé de l’application et remplacé par :site_setting_changed. Il n’y a plus rien qui écoute l’événement :site_setting_saved.