L'impostazione del sito è diversa ogni volta su Ubuntu development installation

Ciao, sto costruendo un sito forum.

Ho provato a modificare le impostazioni del sito e ad aggiornare la pagina, ma non riesco a vedere i nuovi valori in modo intermittente.

Ogni aggiornamento sembra mostrare i valori precedentemente memorizzati nella cache.

Ho modificato il numero di worker Puma, ma il problema persiste.

Il valore modificato viene salvato correttamente nel database.

Potrebbe essere un problema di message_bus?
Se sì, come dovrei configurare le impostazioni?

Attendo una tua risposta. Grazie!

1 Mi Piace

Come hai installato esattamente Discourse?

1 Mi Piace

Vedo la stessa cosa. Se imposto il numero di worker di Puma a 1, il problema scompare. Sembra che ogni worker mantenga una copia dell’oggetto delle impostazioni del sito e, quando un worker esegue un aggiornamento, gli altri worker non ne vengono mai a conoscenza.

Sfortunatamente, questo problema è presente anche in un ambiente scalato orizzontalmente con più server Discourse, quindi impostare semplicemente il numero di worker a 1 non risolve completamente il problema.

Devo fare la stessa domanda: come hai installato esattamente Discourse?

Quando l’installazione segue l’unico metodo supportato, non utilizziamo Puma e questo bug non è presente.

1 Mi Piace

Sto cercando di sviluppare un plugin, quindi ho seguito il link nel README per configurare un ambiente di sviluppo su Ubuntu. Quando eseguo il comando bundle exec rails server --binding=0.0.0.0, l’app viene avviata con Puma.

L’unica cosa simile che ho visto è che se il server è fermo, il browser a volte restituisce un file JSON o la versione cache del sito.

Il server è ancora in esecuzione?

Un’altra cosa che faccio è aprire un altro terminale ed eseguire

./bin/rails c

e modificare le impostazioni lì con qualcosa come

SiteSetting.title=“il mio titolo”

Il server è ancora in esecuzione. Ho verificato dai log che Discourse sta gestendo la richiesta. Inoltre, ho disabilitato la cache nella console degli strumenti per sviluppatori del browser mentre sto effettuando il debug di questo problema.

Perché stai scalando orizzontalmente durante lo sviluppo di plugin?

I sintomi indicano che il tuo MessageBus interno è rotto, quindi c’è qualcosa di sbagliato nella configurazione di Redis. Anche gli aggiornamenti in tempo reale nel browser potrebbero non funzionare.

2 Mi Piace

Non stavo scalando per lo sviluppo di plugin, stavo solo testando questo in diversi scenari per cercare di restringere il campo del mio problema e assicurarmi di averlo capito. Se il MessageBus è tenuto a gestire questo, allora approfondirò l’argomento.

Durante il debug, ho notato che app/models/site_setting.rb sta ancora attivando un evento :site_setting_saved, che sembra essere stato rimosso dall’app e sostituito con :site_setting_changed. Non c’è più nulla in ascolto dell’evento :site_setting_saved.

Puoi eseguire anche il server web Unicorn in sviluppo con bin/unicorn.

1 Mi Piace