Nous venons de rencontrer une situation sur un forum où un utilisateur a publié dans une catégorie surveillée par d’autres utilisateurs. Cependant, compte tenu de la nature de sa demande, un modérateur l’a convertie en message privé en l’espace de 3 minutes.
Bien que cela ait été converti en message privé, il semble que cela ait tout de même déclenché un e-mail à l’intention de ceux qui surveillaient la catégorie où le message avait été initialement publié, ce qui ne me semble pas correct. Je m’attendais à ce que l’e-mail ne soit pas envoyé, puisqu’il a été converti en message privé/personnel.
L’utilisateur B démarre un nouveau sujet dans la même catégorie
Un modérateur convertit le message de B en message privé uniquement entre eux et B, dans un court laps de temps (par exemple < 5 minutes)
L’utilisateur A reçoit toujours un e-mail le notifiant du nouveau message x minutes après sa création
J’ai réussi à reproduire le problème avec deux comptes de test. L’e-mail est toujours envoyé à l’utilisateur A (mais il ne peut pas voir le message complet s’il clique dessus).
Je ne suis pas expert de Discourse, mais d’après ce que je vois, le sujet déclenche le travail planifié dans Sidekiq, qui est ensuite envoyé x minutes après la création du sujet.
At the point of being converted to a PM, the email is still sat in Sidekiq. I’m not going to say I’m a Discourse expert, or even say I understand how it works (because I don’t - I just love its format and a member of several Discourse powered sites), so I’m not sure if it could be prevented.
Perhaps a timeline of events could help explain the situation:
5:20pm - User A posts publicly
5:21pm - Mod converts post to a PM
5:30pm - User B receives the “New post” email, with a subject of [Site Site][PM] New Topic
Just after the post was converted, there was a Jobs::UserEmail event in Sidekiq for the new topic.
Only speaking for myself (hosted by Discourse), it seems like my emails land pretty much immediately after a post. I have mailing list mode turned on, send me mail even if I’m on the site, that sort of thing. You might be able to call it back if it hadn’t been sent, but that seems like a race. In this case it was close, but if it had happened after the mod had logged off it likely would have sat there much longer.
The defaults (configurable via site settings) are 20 seconds after posting for personal message notifications, and 10 minutes for all other notifications. The relevant site settings are personal email time window seconds and email time window mins.