Le paramètre du site est différent à chaque fois sur l'installation de développement Ubuntu

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 ?

Merci de me répondre. Merci !

Comment exactement avez-vous installé Discourse ?

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 dois poser la même question : comment avez-vous exactement installé Discourse ?

Lors de l’installation selon la seule méthode prise en charge, nous n’utilisons pas Puma, et ce bug n’est pas présent.

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

SiteSetting.title=“mon titre”

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.

Vous pouvez également exécuter le serveur web Unicorn en développement avec bin/unicorn.