Ieri il mio sito ha iniziato a generare notifiche per vecchi post all’improvviso. Questo è il numero di notifiche ‘posted’ (notification_type = 9) create più di un’ora dopo nei giorni scorsi:
Query utilizzata per generare la tabella
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
Ecco alcuni esempi (dall’esecuzione della CTE nella query sopra):
La prima riga evidenziata è stata creata l’8 dicembre, ma un utente che sta monitorando quella categoria ha ricevuto una notifica il 25 dicembre (e, da quanto mi hanno riferito altri utenti, stanno ricevendo notifiche su post che avevano già visto).
La seconda riga evidenziata è stata creata il 29 settembre, modificata il giorno successivo e notificata il 25 dicembre.
Ho appena ricostruito il contenitore, quindi sto eseguendo l’ultima versione di Discourse. Per ora ho disattivato le notifiche via email.
Avete qualche idea su come diagnosticare il problema? Immagino che si tratti di una coda bloccata per qualche motivo o qualcosa di simile. C’è un modo per scoprire cosa sta generando queste notifiche?


