Сообщения, отправленные в быстром темпе, не вызывают отправку всех писем

На этом форуме все сообщения должны быть одобрены. В результате некоторые сообщения публикуются подряд: когда модератор входит в систему, он быстро одобряет сообщения одно за другим.

Большинство категорий установлены в режим «подписки» для всех пользователей, и почти никто не входит в систему; форум сильно полагается на уведомления по электронной почте.

Проблема в том, что когда сообщения публикуются подряд (с интервалом менее 1,5 минут), не все письма отправляются. Этот запрос показывает количество отправленных писем (записи в email_logs по каждой теме). Количество пользователей, которые должны получить письмо, составляет около 2250. Поскольку люди, которые недавно входили в систему (около 1%), не получают письма, это число немного варьируется, но должно находиться в диапазоне от 2200 до 2250.

Как видно из первых трёх строк, при быстрой публикации сообщений одно за другим количество отправленных писем не достигает ожидаемого значения.

Что может происходить в данном случае?

О, параметр max_emails_per_day_per_user установлен на очень высокое значение.


столбцы: тема, дата/время, категория, # отправленных писем

За последние месяцы мы получили новые данные:

  • проблема была не в самих письмах, а в генерации соответствующих уведомлений.
  • быстрая генерация большого количества уведомлений приводила к перезапуску Sidekiq с ошибкой «Sidekiq потребляет слишком много памяти».
  • перезапуск Sidekiq приводил к прерыванию текущей партии уведомлений, генерируемых для поста, что приводило к неполному набору уведомлений.

РЕДАКТИРОВАНИЕ: повышение значения UNICORN_SIDEKIQ_MAX_RSS предотвратило повторение этой проблемы в течение последних 9 дней.