Seiteneinstellung ist bei jeder Ubuntu-Entwicklungsinstallation anders

Hallo, ich baue eine Forum-Website.

Ich habe versucht, die Site-Einstellungen zu ändern und die Seite neu zu laden, bekomme aber die geänderten Werte nur unregelmäßig.

Bei jedem Neuladen scheinen die zuvor zwischengespeicherten Werte angezeigt zu werden.

Ich habe die Anzahl der Puma-Worker angepasst, aber das bringt nichts.

Der geänderte Wert wird in die Datenbank geschrieben.

Liegt das Problem am message_bus?
Wenn ja, wie sollte ich die Einstellungen konfigurieren?

Bitte antworten Sie mir. Vielen Dank!

1 „Gefällt mir“

Wie genau hast du Discourse installiert?

1 „Gefällt mir“

Ich sehe das Gleiche. Wenn ich die Anzahl der Puma-Worker auf 1 setze, verschwindet das Problem. Es scheint, als würde jeder Worker eine Kopie des Site-Einstellungen-Objekts halten, und wenn ein Worker ein Update durchführt, werden die anderen Worker davon nie informiert.

Leider tritt dieses Problem auch in einer skalierten Umgebung mit mehreren Discourse-Servern auf, sodass das Setzen der Worker-Anzahl auf 1 keine vollständige Lösung ist.

Ich muss dasselbe fragen: Wie genau hast du Discourse installiert?

Bei der Installation nach der einzigen unterstützten Methode verwenden wir kein Puma, und dieser Fehler tritt nicht auf.

1 „Gefällt mir“

Ich versuche, ein Plugin zu entwickeln, und habe daher den Link in der README befolgt, um eine Ubuntu-Entwicklungsumgebung einzurichten. Wenn ich den Befehl bundle exec rails server --binding=0.0.0.0 ausführe, startet die Anwendung mit Puma.

Das Einzige, was ich in dieser Hinsicht gesehen habe, ist, dass der Browser manchmal eine JSON-Datei oder die zwischengespeicherte Version der Website zurückgibt, wenn der Server gestoppt ist.

Ist der Server noch aktiv?

Eine weitere Sache, die ich tue, ist, ein weiteres Terminal zu öffnen und

./bin/rails c

auszuführen und dort Einstellungen zu ändern, zum Beispiel mit:

SiteSetting.title=“Mein Titel”

Der Server läuft noch. Ich habe in den Protokollen überprüft, dass Discourse die Anfrage bedient. Zudem habe ich beim Debuggen den Cache in der Entwicklerkonsole meines Browsers deaktiviert.

Warum skalierst du während der Plugin-Entwicklung horizontal?

Die Symptome deuten darauf hin, dass dein interner MessageBus defekt ist, was auf ein Problem mit deiner Redis-Konfiguration hindeutet. Live-Aktualisierungen im Browser können ebenfalls beeinträchtigt sein.

2 „Gefällt mir“

Ich habe nicht für die Plugin-Entwicklung skaliert, sondern habe dies nur in einigen verschiedenen Szenarien getestet, um mein Problem einzugrenzen und sicherzustellen, dass ich es verstanden habe. Wenn MessageBus dies übernehmen soll, werde ich mich weiter damit beschäftigen.

Beim Debuggen habe ich festgestellt, dass app/models/site_setting.rb weiterhin ein :site_setting_saved-Event auslöst, das anscheinend aus der App entfernt und durch :site_setting_changed ersetzt wurde. Es hört niemand mehr auf das :site_setting_saved-Event.

Du kannst den Unicorn-Webserver auch in der Entwicklung mit bin/unicorn ausführen.

1 „Gefällt mir“