Ontem meu site começou a gerar notificações para posts antigos do nada. Este é o número de notificações de ‘publicado’ (notification_type = 9) criadas mais de uma hora atrás nos últimos dias:
Consulta que usei para gerar a tabela
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
Aqui estão alguns exemplos (ao executar a CTE na consulta acima):
A primeira linha destacada foi criada em 8 de dezembro, mas um usuário que está acompanhando aquela categoria recebeu uma notificação em 25 de dezembro (e, pelo que outros usuários me relataram, eles estão sendo notificados sobre posts que já haviam visto).
A segunda linha destacada foi criada em 29 de setembro, modificada um dia depois e notificada em 25 de dezembro.
Acabei de reconstruir o container, então estou executando a versão mais recente do Discourse. Por enquanto, desabilitei as notificações por e-mail.
Alguma ideia de como diagnosticar isso? Suponho que seja uma fila que ficou bloqueada por algum motivo ou algo assim. Existe alguma maneira de descobrir o que está gerando essas notificações?


