La consulta RSS puede tardar 20 minutos o más en procesar un feed

Hola, en primer lugar, muchas gracias por la nueva interfaz de administración de RSS Polling. ¡La diferencia es enorme!

Tenemos un sitio web con decenas de feeds de RSS. He notado en Sidekiq que algunos trabajos de ciertos feeds pueden tardar veinte minutos o más. Esto satura fácilmente la cola.

Existe una configuración llamada RSS polling feed request timeout, pero ese no es el problema. El feed de RSS está disponible rápidamente y se carga rápido (al menos cuando lo pruebo con mi navegador al mismo tiempo que Sidekiq tiene problemas con el mismo feed). El problema parece ser que algunos feeds de RSS contienen todos los episodios de un pódcast (en lugar de solo los 10-15 más recientes) Y que Discourse parece procesar todas esas entradas incluso si los episodios ya están descargados y sin cambios. Básicamente, Sidekiq puede estar ocupado durante media hora o más debido a feeds de RSS que no traen cambios ni nuevos episodios.

Idealmente, Discourse debería ver rápidamente que no hay cambios y pasar al siguiente.

Opcionalmente, podría haber una configuración para limitar la lectura a las primeras NN entradas del feed.

O, al menos, un límite de tiempo para finalizar una consulta si no se resuelve después de NN minutos (5 minutos, o 10 como máximo).

Me pregunto qué es exactamente lo que sucede cuando un feed tarda más de 10 minutos en procesarse y Sidekiq está al 100% de ocupación. Qué es exactamente lo que puede tardar tanto y ser tan pesado de procesar.

¿Crees que esto es algo que podría mejorarse en el plugin actual?

2 Me gusta

Me encantaría mejorarlo. ¿Podrías compartir la URL de tu feed para que pueda probarlo mejor localmente? (Si prefieres mantenerlo en privado, no dudes en enviarme un mensaje privado)

2 Me gusta

Muchas gracias @zogstrip por tu rápida respuesta. Los feeds RSS son públicos y, de hecho, se recomiendan para quien guste de escuchar podcasts y programas de radio independientes en español. :wink:

Mantenemos la lista de feeds RSS válidos que hemos desactivado temporalmente para darle algo de respiro a nuestro servidor aquí: Limpieza de RSS feeds - nº 3 por icaria36 - Sobre Podkasts - Podkasts

Muchos de ellos usan WordPress y podemos pedirles que editen el número de entradas en su RSS. Pero muchos usan iVoox, una plataforma popular al menos en los países hispanohablantes. Incluyen todos los episodios de un programa en su RSS, son una empresa (relativamente) grande y resulta difícil incluso encontrar un enlace de “Contacto” que lleve a una persona. Así que estamos atascados ahí. Para tu prueba, yo empezaría añadiendo los feeds de iVoox y luego pasaría a más si quieres más.

P.D.: puedes empezar con uno, inusualmente largo: <![CDATA[Es lo que hay - Lliure directe]]>

1 me gusta

tengo un par de PRs en desarrollo que deberían mejorar drásticamente la velocidad de sondeo/importación de feeds grandes

2 Me gusta

O M G !!!

¡Muchas gracias! Fue rápido y preciso.

Estoy muy contento con nuestra pequeña contribución al reportar este problema. Aunque nuestro caso es bastante un caso límite (supongo), la solución contribuirá, aunque sea en menor medida, al rendimiento de prácticamente cualquier instancia de Discourse que utilice este plugin.

Veo que los parches se han fusionado. ¿Esto significa que podemos obtenerlos actualizando Discourse ahora?

2 Me gusta

Merged significa que los cambios ya están en main. Por lo general, los foros no siguen la rama principal (main); en su lugar, siguen la rama latest. Esto significa que, después de la fusión, aún debes esperar a que las pruebas automáticas se ejecuten y se aprueben.

Cuando miras Commits · discourse/discourse · GitHub, puedes ver que esto acaba de ocurrir con los commits de zogstrip (hay una marca de verificación verde, mientras que el commit anterior aún tiene el punto marrón).

Y ahora también puedes ver los commits al mirar la rama latest: Commits · discourse/discourse · GitHub

Por lo tanto, si estás siguiendo la rama latest, como hacen los foros por defecto, puedes actualizar ahora para obtener esos commits.

2 Me gusta

He reactivado los feeds RSS y la primera ronda de RSS se ha procesado en su mayor parte. Han aparecido 86 nuevas entradas, muchas de ellas de días anteriores, lo que significa que varios feeds no pudieron completar su procesamiento antes y ahora sí lo han hecho. ¡Muy bien!

Los feeds muy largos aún pueden mantener una tarea ocupada durante mucho tiempo, pero solo he visto 3 que superen los 10 minutos. Este sigue ejecutándose después de 1 hora… Pero es realmente largo, así que tal vez esté justificado. Por otro lado, que un solo feed ocupe una tarea durante tanto tiempo es problemático en sí mismo. ¿Quizás se deba a que es la primera importación completa en un tiempo? Lo verificaré de nuevo en la próxima ronda de RSS (la tenemos configurada para 180 minutos).

1 me gusta

Quizás esa tarea que lleva una hora en ejecución esté atascada en algo más allá de la importación. Acabo de notar que todas las publicaciones de ese feed parecen haberse importado, con imágenes y todo. Al menos desde el punto de vista del usuario, la importación parece estar completada. Quizás sea un caso aislado. Informaré de nuevo después de unas cuantas rondas más de RSS.

Genial :+1:

¿Esos feeds son “nuevos” o ya se habían importado todos antes? No he hecho mucho en cuanto a mejorar la velocidad de la importación inicial, ya que esto está limitado en gran medida por lo “rápido” que podemos crear un nuevo tema.

Ya están todos importados.

Vale, hemos cambiado la frecuencia de sondeo a 10 minutos con fines de prueba (la volveremos a 180 minutos, que es suficiente para nosotros). Después de la corrección de zogstrip, la mayoría de los feeds se procesan en un minuto o menos. Solo hay un par de feeds muy largos que pueden tardar 2 minutos o más, pero nunca (que yo haya visto) más de 5 minutos. Este feed RSS es el único que de forma fiable tarda 4 minutos o más, pero es extremadamente largo, así que no estoy seguro de que se pueda hacer mucho al respecto en este caso de uso. Incluso el navegador necesita un tiempo para renderizarlo. (Y es posible que lo eliminemos por razones no relacionadas).

El hecho de que todo el proceso de sondeo no tarde más de 5-6 minutos es asombroso. Una gran mejora. Para mí, este informe puede resolverse. Muchas gracias de nuevo, @zogstrip.

1 me gusta

Keanu Reeves: My Pleasure

2 Me gusta