Ayer mi sitio comenzó a generar notificaciones para publicaciones antiguas de la nada. Este es el número de notificaciones de ‘publicado’ (notification_type = 9) creadas más de una hora después en los últimos días:
Consulta que utilicé para generar la tabla
WITH pre AS (
SELECT
p.id as post_id,
to_char(n.created_at,
'YYYY-MM-DD') AS notified_day,
p.topic_id,
round(least(EXTRACT(EPOCH FROM n.created_at - p.created_at)::numeric, EXTRACT(EPOCH FROM n.created_at - p.updated_at)::numeric) / 3600) AS hours_diff,
p.created_at,
p.updated_at,
n.created_at,
u.username
FROM
notifications n
LEFT JOIN posts p ON p.post_number = n.post_number
AND p.topic_id = n.topic_id
left join users u on u.id = n.user_id
WHERE
round(least(EXTRACT(EPOCH FROM n.created_at - p.created_at)::numeric, EXTRACT(EPOCH FROM n.created_at - p.updated_at)::numeric) / 3600) > 0
AND n.notification_type = 9
ORDER BY
n.created_at DESC
LIMIT 400
)
SELECT
count(*),
notified_day
FROM
pre
GROUP BY
notified_day
ORDER BY
notified_day DESC
Aquí hay algunos ejemplos (al ejecutar el CTE en la consulta anterior):
La primera fila resaltada se creó el 8 de diciembre, pero un usuario que está siguiendo esa categoría recibió una notificación el 25 de diciembre (y según lo que otros usuarios me han dicho, están recibiendo notificaciones sobre publicaciones que ya habían visto).
La segunda fila resaltada se creó el 29 de septiembre, se modificó al día siguiente y se notificó el 25 de diciembre.
Acabo de reconstruir el contenedor, así que estoy ejecutando la última versión de Discourse. Por ahora, he desactivado las notificaciones por correo electrónico.
¿Alguna idea sobre cómo solucionar esto? Supongo que se trata de una cola que se quedó atascada por alguna razón o algo similar. ¿Hay alguna manera de averiguar qué está generando estas notificaciones?


