Ciao, innanzitutto, grazie mille per la nuova interfaccia di amministrazione per il polling RSS. Fa davvero la differenza!
Abbiamo un sito web con decine di feed RSS. Ho notato in Sidekiq che alcuni job per determinati feed possono richiedere venti minuti o più. Questo intasa facilmente la coda.
Esiste un’impostazione Timeout richiesta feed polling RSS, ma non è questo il problema. Il feed RSS è rapidamente disponibile e si carica in fretta (almeno quando lo provo con il mio browser nello stesso momento in cui Sidekiq ha difficoltà con lo stesso feed). Il problema sembra essere che alcuni feed RSS contengono tutti gli episodi di un podcast (a differenza di soli i 10-15 più recenti) E che Discourse sembra elaborare tutte quelle voci anche se gli episodi sono già stati scaricati e senza modifiche. In pratica, Sidekiq può facilmente avere difficoltà per mezz’ora o più a causa di feed RSS che non apportano modifiche né nuovi episodi.
Idealmente, Discourse dovrebbe vedere rapidamente che non ci sono modifiche e passare oltre.
Opzionalmente, potrebbe esserci un’impostazione per limitare la lettura alle prime NN voci del feed.
O, almeno, un limite di tempo per terminare il polling se non viene risolto dopo NN minuti (5 minuti, o 10 al massimo).
Mi chiedo cosa accada esattamente quando un feed richiede più di 10 minuti per essere elaborato e Sidekiq è al 100% di occupazione. Cosa può esattamente richiedere così tanto tempo ed essere così pesante da elaborare.
Credi che sia qualcosa che potrebbe essere migliorato nel plugin attuale?
sarei felice di migliorarlo, potresti condividere l’URL del tuo feed in modo che io possa testarlo meglio localmente? (sentimi libero di inviarmi un messaggio privato se preferisci mantenerlo privato)
Grazie mille @zogstrip per la risposta rapida! I feed RSS sono pubblici e, in effetti, sono consigliati a chiunque ami ascoltare podcast e programmi radiofonici indipendenti in spagnolo.
Molti di essi utilizzano WordPress e possiamo chiedere loro di modificare il numero di voci nel proprio feed RSS. Tuttavia, molti usano iVoox, una piattaforma molto popolare almeno nei paesi di lingua spagnola. Includono tutti gli episodi di un programma nel loro feed RSS; essendo un’azienda (relativamente) grande, è difficile trovare anche solo un link “Contattaci” che porti a una persona reale. Quindi, in questo caso, siamo a corto di soluzioni. Per il tuo test, ti suggerisco di iniziare aggiungendo i feed di iVoox, e poi di procedere con altri se ne vorrai di più.
Sono molto felice per il nostro piccolo contributo nel segnalare questo problema. Anche se il nostro caso è piuttosto un caso limite (credo?), la soluzione contribuirà, seppur in misura minore, alle prestazioni di praticamente qualsiasi istanza di Discourse che utilizza questo plugin.
Vedo che le patch sono state integrate. Questo significa che possiamo ottenerle aggiornando Discourse adesso?
Merged significa che le modifiche sono in main. Di solito, i forum non monitorano il ramo main; al contrario, monitorano latest. Questo significa che, dopo la fusione, è comunque necessario attendere che i test automatici vengano eseguiti e superati.
Quando si guarda Commits · discourse/discourse · GitHub, si può vedere che questo è appena successo con i commit di zogstrip (c’è un segno di spunta verde, mentre il commit sopra ha ancora il punto marrone).
Ho riattivato i feed RSS e il primo giro di aggiornamento è andato a buon fine per la maggior parte. Sono comparse 86 nuove pubblicazioni, molte delle quali risalenti a giorni fa, il che significa che diversi feed non erano stati in grado di completare l’elaborazione in precedenza, mentre ora ci sono riusciti. Ottimo!
I feed molto lunghi possono ancora occupare un processo per molto tempo, ma ne ho visti solo 3 superare i 10 minuti. Questo è ancora in esecuzione dopo 1 ora… Ma è davvero lungo, quindi forse è giustificato? D’altra parte, un singolo feed che occupa un processo per così tanto tempo è di per sé un po’ problematico. Forse è dovuto al fatto che si tratta del primo import completo da un po’ di tempo? Controllerò di nuovo nel prossimo giro di RSS (è impostato su 180 minuti).
Forse quel processo, in esecuzione da un’ora, è bloccato su qualcosa oltre l’importazione? Ho appena notato che tutti i post di quel feed sembrano essere stati importati, immagini comprese. Almeno dal punto di vista dell’utente, l’importazione sembra essere completata. Potrebbe trattarsi di un caso isolato. Farò un altro aggiornamento dopo un paio di cicli RSS aggiuntivi.
Quei feed sono “nuovi” o sono già stati tutti importati in precedenza? Non ho fatto molto per migliorare la velocità dell’import iniziale, poiché è in gran parte limitata dalla velocità con cui possiamo creare un nuovo topic.
Ok, abbiamo modificato la frequenza di polling a 10 minuti per i test (la riporteremo a 180 minuti, che è più che sufficiente per noi). Dopo la correzione di zogstrip, la maggior parte dei feed viene elaborata in meno di un minuto. Ci sono solo un paio di feed molto lunghi che possono richiedere fino a 2 minuti o più, ma mai (per quanto ne so) oltre i 5 minuti. Questo feed RSS è l’unico che raggiunge costantemente i 4 minuti o più, ma è estremamente lungo, quindi non sono sicuro che si possa fare molto per questo caso d’uso. Anche il browser ha bisogno di un po’ di tempo solo per renderizzarlo. (E potremmo rimuoverlo per motivi non correlati.)
Il fatto che l’intero processo di polling non richieda più di 5-6 minuti è straordinario. Un enorme miglioramento. Per me, questa segnalazione può essere risolta. Grazie ancora mille, @zogstrip.