A verificação de RSS pode levar 20 minutos ou mais para processar um feed

Olá, antes de tudo, muito obrigado pela nova interface administrativa de RSS Polling. Ela faz toda a diferença!

Temos um site com dezenas de feeds RSS. Percebi no Sidekiq que alguns jobs de alguns feeds podem levar vinte minutos ou mais. Isso acaba entupindo a fila com facilidade.

Existe a configuração RSS polling feed request timeout, mas esse não é o problema. O feed RSS fica disponível rapidamente e carrega rápido (pelo menos quando tento com meu navegador ao mesmo tempo em que o Sidekiq está lutando com o mesmo feed). O problema parece ser que alguns feeds RSS contêm todos os episódios de um podcast (em vez de apenas os 10 a 15 mais recentes) E que o Discourse parece processar todas essas entradas, mesmo quando os episódios já foram baixados e não sofreram alterações. Basicamente, o Sidekiq pode ficar facilmente sobrecarregado por meia hora ou mais devido a feeds RSS que não trazem mudanças nem novos episódios.

Idealmente, o Discourse perceberia rapidamente que não há alterações e seguiria em frente.

Opcionalmente, poderia haver uma configuração para limitar a leitura às primeiras NN entradas do feed.

Ou, no mínimo, um limite de tempo para encerrar a verificação caso ela não seja resolvida após NN minutos (5 minutos, ou no máximo 10).

Me pergunto exatamente o que acontece quando um feed leva mais de 10 minutos para ser processado e o Sidekiq está 100% ocupado. O que exatamente pode levar tanto tempo e ser tão pesado de processar?

Vocês acham que isso é algo que poderia ser melhorado no plugin atual?

2 Curtiram

Eu ficaria feliz em melhorar isso. Você poderia compartilhar a URL do seu feed para que eu possa testar melhor localmente? (Sinta-se à vontade para me enviar uma mensagem privada se preferir manter isso em sigilo)

2 Curtiram

Muito obrigado @zogstrip pela resposta rápida! Os feeds RSS são públicos e, de fato, recomendados para quem gosta de ouvir podcasts e programas de rádio independentes em espanhol. :wink:

Mantemos a lista de feeds RSS válidos que desativamos temporariamente para dar um alívio ao nosso servidor aqui: Limpieza de RSS feeds - nº 3 por icaria36 - Sobre Podkasts - Podkasts

Muitos deles usam WordPress e podemos pedir que editem o número de entradas em seus feeds RSS. Mas muitos usam a iVoox, uma plataforma popular pelo menos nos países de língua espanhola. Eles incluem todos os episódios de um programa em seus feeds RSS, são uma empresa (relativamente) grande e é difícil até mesmo encontrar um link de “Fale conosco” que leve a alguém. Portanto, estamos travados nesse ponto. Para seu teste, eu começaria adicionando os feeds da iVoox e, em seguida, seguiria com mais, se você quiser.

P.S.: você pode começar com um, incomum por ser longo: <![CDATA[Es lo que hay - Lliure directe]]>

1 Curtiu

tenho alguns PRs em andamento que devem melhorar drasticamente a velocidade de polling/importação de feeds grandes

2 Curtiram

O M G !!!

Muito obrigado! Foi rápido e preciso.

Estou muito feliz com nossa pequena contribuição ao reportar esse problema. Mesmo que nosso caso seja bastante específico (suponho?), a solução contribuirá, ainda que em menor grau, para o desempenho de praticamente qualquer instância do Discourse que utilize esse plugin.

Vejo que os patches foram mesclados. Isso significa que podemos obtê-los atualizando o Discourse agora?

2 Curtiram

Merged significa que as alterações estão no main. Normalmente, os fóruns não acompanham o branch main; em vez disso, eles acompanham o latest. Isso significa que, após o merge, você ainda precisa aguardar os testes automáticos serem executados e passarem.

Ao olhar para Commits · discourse/discourse · GitHub, você pode ver que isso acabou de acontecer com os commits do zogstrip (há um sinal de verificação verde, enquanto o commit acima ainda tem o ponto marrom).

E agora você também pode ver os commits ao olhar para o branch latest: Commits · discourse/discourse · GitHub

Então, se você estiver acompanhando o latest, como os fóruns fazem por padrão, você pode atualizar agora para puxar esses commits.

2 Curtiram

Reativei os feeds RSS e a primeira rodada de RSS foi processada com sucesso. 86 novas publicações apareceram, muitas delas de dias atrás, o que significa que vários feeds não conseguiram concluir seu processamento antes, mas agora conseguiram. Muito bom!

Feeds muito longos ainda podem manter um trabalho ocupado por um longo tempo, mas só vi 3 exceder 10 minutos. Este ainda está em execução após 1 hora… Mas ele é realmente longo, então talvez seja justificado? Por outro lado, um único feed ocupando um trabalho por tanto tempo é, em si, um pouco problemático. Talvez tenha a ver com ser a primeira importação completa em algum tempo? Vou verificar novamente na próxima rodada de RSS (estamos configurados para 180 minutos).

1 Curtiu

Talvez aquela tarefa que está sendo executada há uma hora esteja travada em algo além da importação? Acabei de notar que todas as publicações daquele feed parecem ter sido importadas, com as imagens e tudo mais. Pelo menos do ponto de vista do usuário, a importação parece estar concluída. Pode ser um caso isolado. Vou reportar novamente após mais algumas rodadas de RSS.

legal :+1:

esses feeds são “novos” ou já foram todos importados antes? eu não fiz muita coisa em relação a melhorar a velocidade da importação inicial, pois isso é limitado em grande parte por quão “rápido” podemos criar um novo tópico.

Todos já foram importados.

Ok, alteramos a frequência de verificação para 10 minutos para fins de teste (vamos voltar para 180 minutos, o que é suficiente para nós). Após a correção do zogstrip, a maioria dos feeds é processada em um minuto ou menos. Apenas alguns feeds muito longos podem levar até 2 minutos ou mais, mas nunca (que eu tenha visto) além de 5 minutos. Este feed RSS é o único que consistentemente leva 4 minutos ou mais, mas ele é extremamente longo, então não tenho certeza se muito pode ser feito sobre esse caso de uso. Até o navegador precisa de um tempo para simplesmente renderizá-lo. (E podemos removê-lo por motivos não relacionados.)

O fato de o processo de verificação inteiro não levar mais de 5 a 6 minutos é impressionante. Uma enorme melhoria. Para mim, este relatório pode ser resolvido. Muito obrigado novamente, @zogstrip.

1 Curtiu

Keanu Reeves: Meu prazer

2 Curtiram