Las fuentes RSS desaparecen misteriosamente

Usamos el plugin rss-polling para importar entradas de docenas de feeds. De vez en cuando, algunos feeds simplemente desaparecen de la lista. No sabemos bajo qué condiciones, no sabemos cómo, y no podemos encontrar ningún registro de tal acción. Tampoco hemos encontrado un patrón. Simplemente desaparecen, y tenemos que crear sus nuevas entradas de nuevo (cuando nos damos cuenta de que han desaparecido, lo cual no es trivial con tantos feeds).

¿Hay alguna funcionalidad escrita en el código que elimine un feed RSS bajo ciertas condiciones? ¿Hay algún registro que registre cuándo sucede esto?

El año pasado @blake trasladó el almacenamiento del backend a la base de datos.

Creo que ahora solo hay un lugar que elimina los feeds y sería la actualización:

Particularmente si los “feed_settings” se establecen en nada de alguna manera, ¿así que tal vez hay un humano involucrado aquí?

¿Con qué frecuencia ha sucedido esto?

De todos modos, esta actualización es un poco arriesgada porque intenta actualizar todo a la vez y no realiza actualizaciones delta.

¿Podría ser alguna automatización tuya que esté enviando un [] vacío y no enviando todo el estado cuando está actualizando los feeds?

3 Me gusta

Lo único que hacemos con el feed RSS es crear nuevos manualmente en /admin/plugins/rss_polling. Nada más.

He notado que el orden de los feeds RSS en esa página cambia de vez en cuando, lo cual ya es extraño y no ayuda a depurar problemas porque se pierde el orden cronológico de creación del feed, y la nueva ordenación no parece seguir ningún orden alfabético o numérico.

No sabemos con qué frecuencia ocurre este problema porque no podemos detectarlo de inmediato cuando sucede. En el mejor de los casos, solo podemos esperar a que el propietario del feed nos diga que no aparecen nuevas entradas, o darnos cuenta nosotros mismos de que, por ejemplo, un podcast semanal ha estado en silencio en el foro últimamente.

Tengo la impresión de que este problema podría estar relacionado con situaciones en las que la CPU se acerca al 100%, o algo más en el servidor alcanza su capacidad máxima. Incluso si el planificador hace un buen trabajo al encuestar solo 5 feeds a la vez, en los análisis de alojamiento podemos ver que cuando se actualizan los feeds RSS, la CPU básicamente alcanza el 100%.

¿Quizás por eso los foros con solo un par de feeds no lo notan, pero si añades muchos, ¿algo podría romperse solo a veces independientemente del planificador?

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

3 Me gusta

(Pensando más)

En cualquier caso, me pregunto por qué Discourse debería eliminar los feeds RSS en primer lugar, y hacerlo silenciosamente. Si un feed RSS es problemático por alguna razón, podría omitirlo esta vez y registrar el problema. A partir de este punto, podrían suceder dos cosas:

  1. Fue un problema ocasional y las próximas ejecuciones del programador funcionarán bien. La entrada del registro se olvidará.
  2. El problema persiste, cada omisión deja una entrada en el registro de errores y, cuando alguien se da cuenta de que hay un problema, los administradores pueden consultar el registro de errores y encontrar los detalles.

Idealmente, los administradores recibirían algún tipo de notificación, pero entiendo que esto añade más trabajo a una posible solución. Omitir en lugar de eliminar + entrada de registro de errores ya sería una gran mejora.

Y para explicar el impacto que tiene este problema en nuestro proyecto. Tenemos un portal de podcasts independientes, se ponen en contacto con nosotros para ser agregados, creamos un canal (subcategoría) donde se importan sus programas y donde los oyentes pueden dar “me gusta” y comentar… Da una muy mala impresión de nuestro proyecto y de la plataforma Discourse cuando se dan cuenta de que hemos dejado de agregarlos y tenemos que responderles que de alguna manera su feed ha sido eliminado…

1 me gusta

:grimacing: Este código “temporal” que ha estado aquí por más de un año es probablemente el culpable. Le echaré un vistazo.

5 Me gusta

Por ahora, empecemos con esta corrección. No digo que esta sea la causa de que las fuentes se eliminen misteriosamente, pero añadir al menos un cuadro de diálogo de confirmación antes de eliminar realmente una fuente es un comienzo.

Más tarde trabajaré en más mejoras cuando tenga más tiempo. Quiero añadir una interfaz de usuario adecuada para editar/guardar fuentes individuales en lugar de solo actualizar/guardar TODAS ellas en cada edición.

@icaria36 si actualizas tu plugin obtendrás este último cambio. Haré un seguimiento nuevamente cuando tenga más mejoras listas.

3 Me gusta

¡Gracias por el parche! Inmediatamente actualicé a la nueva versión y agregué las fuentes RSS que faltaban (¡unas 20!), y hoy revisé y… las fuentes han sido eliminadas silenciosamente de nuevo. :frowning: No sé cuándo, no sé cómo, todavía no sé cuáles, pero faltan alrededor de una docena. No he visto ningún diálogo preguntando sobre las fuentes antes de eliminarlas, ni nada en absoluto. Además, me encargué de volver a agregar las fuentes RSS cuando las CPU del servidor estaban bien, evitando el tiempo de sondeo RSS, solo para eliminar ese factor de la ecuación.

Tengo la impresión de que hay una conexión entre el hecho de que la lista cambie su ordenación y el hecho de que las fuentes desaparezcan. Lo que sea que cause el cambio de ordenación podría ser traumático suficiente como para tener también bajas. Una pregunta útil podría ser: ¿por qué la lista cambia su ordenación en primer lugar? Que las fuentes desaparezcan mientras la ordenación de la lista permanece igual sería igual de malo, pero se sentiría… más limpio. :slight_smile:

Este problema es tedioso de arreglar por nuestra parte (averiguar qué fuentes faltan antes de que sus propietarios se den cuenta y pregunten + volver a agregar las entradas de las fuentes), pero es aún más tedioso de detectar, porque la única forma es revisar fuente por fuente de la categoría RSS para ver cuáles faltan, o al menos contar manualmente cuántas fuentes hay en comparación con la última vez que contamos.

Un gran ahorro de tiempo para la depuración sería tener una cadena que muestre el número total de fuentes en /admin/plugins/rss_polling, es decir, solo “N fuentes”. Y/o hacer que la lista esté numerada.

1 me gusta

Ah, qué fastidio, ya me imaginaba, pero gracias por la actualización. Ahora que han terminado las fiestas me pondré a trabajar en una solución adecuada para esto.

1 me gusta

He mejorado bastante la interfaz de administración con mis últimos cambios y debería solucionar el problema de la eliminación misteriosa de las fuentes RSS.

Ahora existe una lógica individual de creación, actualización y eliminación en lugar de intentar actualizar cada fuente cada vez que se modificaba algo. Debería funcionar mucho mejor ahora.

2 Me gusta

¡Muchas gracias por tu rápida actuación! Me actualizaré esta noche, me aseguraré de que todas nuestras fuentes estén habilitadas y reportaré aquí si hay algo (¡esperemos que nada en absoluto!).

1 me gusta

¡Vaya, esto es mucho mejor! Cada feed se edita individualmente, guardando un cambio a la vez. Guardar un nuevo feed es una acción instantánea. Antes, cuando tenías muchos feeds, agregar un nuevo feed y presionar el ícono de guardar significaba unos segundos de proceso antes de que la lista completa se actualizara. Esto se siente sólido y confiable. ¡Muchas gracias!

Esperaré un par de semanas para verificar que no se pierdan feeds.

Un par de sugerencias para mejorar la interfaz de usuario, por si son útiles y llegan en el momento adecuado:

El “+” para agregar un nuevo feed está en la parte superior, pero la nueva fila se agrega en la parte inferior. Si la lista de feeds es más larga que la pantalla, el usuario hace clic en el “+” y no ve que suceda nada. Conozco bien esta página y, al principio, pensé que el botón estaba roto. Luego pensé en revisar el final de la lista y allí había una nueva fila, esperando, como antes.

  • Agregar la nueva fila al principio de la lista, justo debajo del botón “+”, podría ser una buena alternativa. Si esto pone el nuevo feed al principio de la lista, también es bueno si va primero en el programador. Los nuevos feeds tienen mayores posibilidades de traer más trabajo y cosas que revisar que los establecidos.

Hay un par de cadenas “Feed Settings” y “Discourse Settings” que parecen estar simplemente ahí. “Feed Settings” parece redundante, dado que la lista está justo debajo y se explica por sí misma. ¿Se supone que “Discourse Settings” es un enlace a /admin/site_settings/category/plugins?filter=plugin%3Adiscourse-rss-polling? ¿O tal vez se supone que son pestañas para dos subpáginas diferentes?

  • Una alternativa podría ser simplemente eliminarlas.

2 Me gusta

¡Genial! :slight_smile:

Sí, buen punto. Lo tendré en cuenta. Tenemos este tema nuevo sobre Creating consistent admin interfaces y creo que algunas mejoras al plugin rss-polling se derivarán de eso. Probablemente imagino que crearemos una pantalla de edición separada como hacemos para otros plugins en lugar de editar las cosas en línea.

Sí, gracias por señalarlo. Puedo ver cómo esto es confuso. “Feed Settings” es una etiqueta para las dos primeras columnas que indican que esas columnas afectan al RSS Feed. La etiqueta “Discourse Settings” es para las últimas 3 columnas, indicando que cuando las modificas, afectan a cosas en Discourse.

3 Me gusta

Ha pasado una semana, hemos añadido un par de docenas de feeds RSS además de los más de cien que ya teníamos, y la lista es sólida como una roca ahora. ¡No hemos detectado ningún problema!

3 Me gusta

Este tema se cerró automáticamente después de 36 días. Ya no se permiten nuevas respuestas.