Come sapere se il message bus è ancora attivo

Sto lavorando su un plugin che gestisce i rebuild di Discourse. È quasi pronto. Quello che mi sta dando fastidio ora è che ho una pagina di stato che fornisce aggiornamenti mentre avviene l’aggiornamento. Ma ci vuole molto tempo e (credo) alla fine il message bus va in timeout perché non c’è attività sulla pagina. Se l’utente esce dalla pagina e ci torna, funziona perfettamente.

C’è un modo per risolvere questo problema? Forse potrei inserire qualcosa nella pagina che provochi un ricaricamento ogni 5 minuti o qualcosa di simile?

MessageBus si riprende da connessioni interrotte, ecc. Forse il nome del tuo canale cambia al ricaricamento?

Quindi MessageBus dovrebbe continuare a aggiornare una pagina all’infinito, anche se il browser è inattivo? Cosa fa REQUEST_QUEUE_SECONDS? (Ah, è solo se il server è sovraccarico?)

Ma… sembra che il mio problema fosse dovuto a qualcosa stato inviato a MessageBus che non avrebbe dovuto. Con Rails, Ember e Ansible tutti coinvolti, è difficile capire chi dare la colpa. :man_shrugging:

Più il message bus fallisce, più riduce la frequenza di tentativo:

Forse ti trovavi in una situazione in cui falliva per un periodo molto lungo e quindi il backoff è diventato troppo elevato per te.

Hmm. No. Penso di non aver affatto capito qual era il mio problema. Fin dall’inizio ero sicuro che si fosse semplicemente smesso di ascoltare in un certo punto, ma mi sbagliavo. Grazie mille. Apprezzo davvero molto il tuo aiuto.