Feed RSS scompaiono misteriosamente

Utilizziamo il plugin rss-polling per importare voci da decine di feed. Di tanto in tanto, alcuni feed scompaiono semplicemente dall’elenco. Non sappiamo in quali condizioni, non sappiamo come, e non riusciamo a trovare alcun log di tale azione. Non abbiamo trovato nemmeno uno schema. Scompaiono e dobbiamo ricreare nuovamente le loro nuove voci (quando ci rendiamo conto che sono scomparse, il che non è banale con così tanti feed).

C’è una funzionalità scritta nel codice che eliminerebbe un feed RSS in determinate condizioni? C’è un log che registrerebbe quando ciò accade?

L’anno scorso @blake ha spostato lo storage del backend nel DB.

Penso che ora ci sia solo un posto che elimina i feed ed è l’aggiornamento:

In particolare se “feed_settings” vengono impostati su nulla in qualche modo, quindi forse è coinvolto un essere umano?

Quanto spesso è successo?

Indipendentemente da ciò, questo aggiornamento è un po’ rischioso perché tenta di aggiornare tutto in una volta e non esegue aggiornamenti delta.

Potrebbe trattarsi di un’automazione che invia un [] vuoto e non invia l’intero stato quando aggiorna i feed?

3 Mi Piace

L’unica cosa che facciamo con il feed RSS è crearne di nuovi manualmente su /admin/plugins/rss_polling. Nient’altro.

Ho notato che l’ordine dei feed RSS in quella pagina cambia di volta in volta, il che è già strano e non aiuta a diagnosticare i problemi perché l’ordine cronologico di creazione dei feed viene perso, e il nuovo ordinamento non sembra seguire alcun ordinamento alfabetico o numerico.

Non sappiamo quanto spesso si verifica questo problema perché non possiamo rilevarlo subito quando accade. Nel migliore dei casi, possiamo solo aspettare che il proprietario del feed ci dica che le nuove voci non compaiono, o accorgerci da soli che, ad esempio, un podcast settimanale è stato silenzioso sul forum ultimamente.

Ho l’impressione che questo problema possa essere correlato a situazioni in cui la CPU si avvicina al 100%, o qualcos’altro nel server raggiunge la capacità massima. Anche se lo scheduler fa un buon lavoro nel controllare solo 5 feed alla volta, sull’analisi dell’hosting possiamo vedere che quando i feed RSS vengono aggiornati la CPU raggiunge praticamente il 100%.

Forse è per questo che i forum con solo un paio di feed non se ne accorgono, ma se ne aggiungi molti qualcosa potrebbe rompersi solo a volte indipendentemente dallo scheduler?

Vedi correlato: Are there any upper limits to the RSS Polling plugin? - #4 by icaria36

3 Mi Piace

(Pensando mais a fundo)

De qualquer forma, pergunto-me por que o Discourse deveria excluir feeds RSS em primeiro lugar e fazê-lo silenciosamente. Se um feed RSS for problemático por algum motivo, ele poderia ignorá-lo desta vez e registrar o problema. A partir daí, duas coisas poderiam acontecer:

  1. Foi um problema ocasional e as próximas execuções do agendador funcionarão bem. A entrada do log será esquecida.
  2. O problema persiste, cada ignorada deixa uma entrada no log de erros e, quando alguém percebe que há um problema, os administradores podem verificar o log de erros e encontrar os detalhes.

Idealmente, os administradores receberiam algum tipo de notificação, mas entendo se isso adiciona mais trabalho a uma solução potencial. Ignorar em vez de excluir + entrada no log de erros já seria uma grande melhoria.

E para explicar o impacto que este problema tem em nosso projeto. Temos um portal de podcasts independentes, eles entram em contato conosco para serem agregados, criamos um canal (subcategoria) onde seus programas são importados e onde os ouvintes podem curtir e comentar… Isso causa uma péssima impressão sobre nosso projeto e a plataforma Discourse quando eles percebem que paramos de agregá-los e temos que responder que, de alguma forma, o feed deles foi excluído…

1 Mi Piace

:grimacing: Questo codice “temporaneo” che è qui da oltre un anno è probabilmente il colpevole. Darò un’occhiata.

5 Mi Piace

Per ora iniziamo con questa correzione. Non sto dicendo che questa sia la causa della misteriosa eliminazione dei feed, ma aggiungere almeno una finestra di dialogo di conferma prima di eliminare effettivamente un feed è un inizio.

Lavorerò in seguito a ulteriori miglioramenti quando avrò più tempo. Voglio aggiungere un’interfaccia utente appropriata per modificare/salvare i singoli feed invece di aggiornare/salvare solo TUTTI i feed ad ogni modifica.

@icaria36 se aggiorni il tuo plugin otterrai quest’ultima modifica. Ti aggiornerò di nuovo quando avrò pronti altri miglioramenti.

3 Mi Piace

Grazie per la patch! Mi sono subito aggiornato alla nuova versione e ho aggiunto i feed RSS mancanti (circa 20!), e oggi ho controllato e… i feed sono stati nuovamente rimossi silenziosamente. :frowning: Non so quando, non so come, non so ancora quali, ma ne mancano circa una dozzina. Non ho visto alcun dialogo che chiedesse dei feed prima di rimuoverli, o qualsiasi altra cosa. Inoltre, mi sono occupato di riaggiungere i feed RSS quando le CPU del server andavano bene, evitando il tempo di polling RSS, giusto per rimuovere quel fattore dall’equazione.

Ho l’impressione che ci sia una connessione tra il fatto che l’elenco cambia l’ordinamento e il fatto che i feed scompaiono. Qualunque cosa causi il cambio di ordinamento potrebbe essere abbastanza traumatica da causare anche delle vittime. Una domanda utile potrebbe essere: perché l’elenco cambia l’ordinamento in primo luogo? La scomparsa dei feed mentre l’ordinamento dell’elenco rimane invariato sarebbe altrettanto grave, ma sembrerebbe… più pulita. :slight_smile:

Questo problema è noioso da risolvere da parte nostra (scoprire quali feed mancano prima che i loro proprietari se ne accorgano e chiedano + riaggiungere le voci dei feed), ma è ancora più noioso da rilevare, perché l’unico modo è controllare categoria-feed dopo categoria-feed per vedere quali mancano – o almeno contare manualmente quanti feed ci sono rispetto all’ultima volta che abbiamo contato.

Un grande risparmio di tempo per il debug sarebbe avere una stringa che mostri il numero totale di feed in /admin/plugins/rss_polling, cioè solo “N feed”. E/o numerare l’elenco.

1 Mi Piace

Ah, peccato, lo immaginavo, grazie comunque per l’aggiornamento. Ora che le vacanze sono finite mi metterò al lavoro per trovare una soluzione adeguata.

1 Mi Piace

Ho migliorato parecchio l’interfaccia utente dell’amministratore con le mie ultime modifiche e dovrebbe risolvere il problema della rimozione inspiegabile dei feed RSS.

Ora c’è una logica individuale di creazione, aggiornamento ed eliminazione invece di tentare di aggiornare ogni singolo feed ogni volta che si modificava qualcosa. Dovrebbe funzionare molto meglio ora.

2 Mi Piace

Grazie mille per la tua pronta azione! Aggiornerò stasera, mi assicurerò che tutti i nostri feed siano abilitati e ti farò sapere qui se c’è qualcosa (speriamo nulla!).

1 Mi Piace

Wow, questo è molto meglio! Ogni feed viene modificato individualmente, salvando una modifica alla volta. Salvare un nuovo feed è un’azione istantanea. Prima, quando c’erano molti feed, aggiungere un nuovo feed e premere l’icona di salvataggio significava alcuni secondi di elaborazione prima che l’elenco completo venisse aggiornato. Questo sembra solido e affidabile. Grazie mille!

Aspetterò un paio di settimane per verificare che nessun feed venga perso.

Un paio di suggerimenti per migliorare l’interfaccia utente, nel caso fossero utili e arrivassero al momento giusto:

Il “+” per aggiungere un nuovo feed si trova in alto, ma la nuova riga viene aggiunta in fondo. Se l’elenco dei feed è più lungo dello schermo, l’utente fa clic sul “+” e non vede succedere nulla. Conosco bene questa pagina e all’inizio ho pensato che il pulsante fosse rotto. Poi ho pensato di controllare la fine dell’elenco e c’era una nuova riga lì, in attesa, proprio come prima.

  • Aggiungere la nuova riga all’inizio dell’elenco, subito sotto il pulsante “+”, potrebbe essere una buona alternativa. Se questo mette il nuovo feed in cima all’elenco, è anche un bene se va per primo nello scheduler. I nuovi feed hanno maggiori probabilità di portare più lavoro e cose da controllare rispetto a quelli consolidati.

Ci sono un paio di stringhe “Feed Settings” e “Discourse Settings” che sembrano semplicemente “appese lì”. “Feed Settings” sembra ridondante, dato che l’elenco è subito sotto e autoesplicativo. “Discourse Settings” dovrebbe essere un link a /admin/site_settings/category/plugins?filter=plugin%3Adiscourse-rss-polling? O forse dovrebbero essere schede per due sottopagine diverse?

  • Un’alternativa potrebbe essere semplicemente rimuoverle.

2 Mi Piace

Dolce! :slight_smile:

Sì, buon punto. Terrò presente questo aspetto. Abbiamo questo nuovo argomento su Creating consistent admin interfaces e penso che alcuni miglioramenti al plugin rss-polling ne deriveranno. Probabilmente immagino che creeremo una schermata di modifica separata, come facciamo per altri plugin, piuttosto che modificare le cose inline.

Sì, grazie per averlo fatto notare. Capisco come questo possa creare confusione. “Feed Settings” è un’etichetta per le prime due colonne che indica che tali colonne interessano il Feed RSS. L’etichetta “Discourse Settings” è per le ultime 3 colonne che indica che quando le modifichi, queste influenzano le cose in Discourse.

3 Mi Piace

È passata una settimana, abbiamo aggiunto un paio di dozzine di feed RSS in aggiunta a quelli che avevamo già più di cento, e l’elenco è ora estremamente solido. Non abbiamo rilevato alcun problema!

3 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 36 giorni. Non sono più consentite nuove risposte.