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?
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)
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.
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.
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?
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).
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).
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.
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.
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.