Los correos digest no se envían a todos los usuarios: necesito ayuda para depurar

@Canapin tampoco hemos visto ninguna documentación que apunte a que esta configuración esté relacionada con el correo electrónico… es bueno saber dónde está, @Heliosurge, así que gracias por señalarlo.

Otro día sin que se cree ningún resumen. Publicamos un nuevo tema para activar las cosas en las últimas 24 horas y nada…

¿Alguien tiene alguna otra idea aquí? ¿Nos falta algún registro en alguna parte? ¿Está fallando algo en alguna parte que podamos ver y corregir?

Pensando en esto, asumimos que el problema está relacionado con el número de usuarios en el sistema. Lo extraño es que esto no ha cambiado en más de 10 desde que se lanzó en Discourse.

Tenemos aproximadamente:

  • 1 millón de usuarios activos
  • 2.4 millones de usuarios desactivados

¿Quizás está ocurriendo algún tiempo de espera extraño cuando el sistema realiza esta búsqueda? ¿Dónde veríamos esa salida si falla?

De nuevo, parece extraño que este sea el problema, ya que los resúmenes se enviaban, al menos en una cantidad limitada, hace una o dos semanas.

1 me gusta

Quizás, o algo más que hace que el resumen esté vacío, por lo tanto, no se envía a los usuarios.

No sé cómo se crea un resumen. No sé si tiene en cuenta las categorías ignoradas por el usuario, o cosas así.

Supongo que tus usuarios no recibirán el resumen si lo envías manualmente a través de la consola de Rails?

user = User.find_by(username: 'user-name')
Jobs.enqueue(:user_email, type: :digest, user_id: user.id)

Unos segundos después de ejecutar esto, deberías ver que los trabajos procesados de Sidekiq aumentaron en 1, pero si tienes un foro grande, puede haber muchos trabajos de Sidekiq en cualquier momento, por lo que puede ser difícil ver si aumentó.
Puedes usar el botón Live Poll para verlo en tiempo real:

Según mi prueba, si ejecuto el script de Rails para enviar el resumen a un usuario, pero el resumen está vacío:

  • porque el usuario lo recibió antes
  • o ha deshabilitado los resúmenes por correo electrónico en su perfil
  • etc…

Entonces el número de trabajos procesados de Sidekiq aumentará en uno, pero no se enviará ningún correo electrónico, y no habrá una nueva entrada en /admin/email/sent.

Quizás podrías registrar los trabajos procesados de Sidekiq para ver si hay alguna pista en ellos. Busqué un poco, pero no estoy seguro de que registre qué trabajos se han procesado por defecto.

Siento que hay una explicación lógica y buena de por qué los usuarios no reciben el resumen. El trabajo podría ser procesado, pero el resumen podría estar vacío, lo que explicaría por qué no hay rastro de él.
Revisaría a fondo de nuevo la configuración de todos los usuarios afectados, sus niveles de notificación, sus categorías seguidas y cosas así.

1 me gusta

Sería bastante sencillo agregar salida de depuración al mecanismo de envío del resumen.
¿Tiene un sitio de prueba disponible, donde se pueda testear sin comprometer su instancia de producción?

Allí, se podría probar si ocurren timeouts en las consultas, por ejemplo. De manera ingenua, esperaría que los timeouts se vean en los registros.

Además, se podría mejorar la consulta que construye las personas objetivo con salida estadística.

Todo esto no es difícil en un entorno sandbox, pero puede ser peligroso en producción.

2 Me gusta

Continúa en: