连续发布帖子未发送所有邮件

本论坛必须审核所有帖子。因此,部分帖子会连续快速发布:当版主登录时,他们会迅速依次批准这些帖子。

大多数类别对所有用户设置为“关注”状态,且几乎没有任何用户登录,论坛非常依赖电子邮件通知。

问题是,每当帖子在极短时间内连续发布(间隔少于 1.5 分钟)时,并非所有邮件都会被发送。此查询显示了已发送邮件的数量(email_logs 表中每个主题的条目数)。应收到邮件的用户数量约为 2250 人。由于近期登录的用户(约 1%)不会收到邮件,该数字会有所波动,但应在 2200 到 2250 之间。

如您在前三行所见,连续快速发布的帖子并未发送全部数量的邮件。

这里可能出了什么问题?

哦,max_emails_per_day_per_user 被设置得非常高。


列:主题、日期/时间、类别、已发送邮件数量

在过去的几个月里,我们获得了一些新的见解:

  • 问题不在于实际的电子邮件,而在于底层通知的生成
  • 在短时间内生成大量通知会导致 Sidekiq 因“Sidekiq 消耗过多内存”而重启
  • Sidekiq 重启会导致当前为帖子生成的通知批次被中止,从而导致通知不完整。

编辑:提高 UNICORN_SIDEKIQ_MAX_RSS 已在过去 9 天内阻止了此问题的再次发生。