Здесь выполняется повторная попытка выполнения 6 заданий. Это приемлемое число, и я знаю причину.
Если же их количество исчисляется тысячами, это плохо, и необходимо предпринять действия.
Есть ли ошибки в логах электронной почты или в логах ошибок сервера /logs?
О чём стоит подумать:
Не ограничивает ли ваш провайдер электронной почты вашу работу? Не превысили ли вы лимиты скорости для вашего тарифного плана? Оплатили ли вы счёт у них?
Вся очередь состоит в основном из задач UserEmail?
Проверьте панель управления вашего почтового сервиса (у вашего провайдера почтовых услуг, а не в Discourse) и посмотрите, есть ли там какая-либо информация.
Да, почти все они связаны с задачами пользователей по электронной почте.
Я проверил Mailgun (4 запущенных экземпляра в моей учетной записи).
Первый экземпляр — единственный, у которого возникает эта проблема, и дата, похоже, не является причиной. Я также проверил логи, но ничего подозрительного не обнаружил.
В Discourse (admin/email/sent) я увидел, что электронное письмо с обзором чата отправлялось с низкой частотой — максимум 5–6 раз в день, чаще всего всего 1 раз или вообще не отправлялось. Почему тогда в Sidekiq создается так много задач?
Одна вещь, которую я заметил: проблема с очередью Sidekiq началась сразу после обновления до версии 3.4.0.beta4-dev. Похоже, что и на другом экземпляре, установленном примерно в то же время, возникла та же проблема (сейчас подтверждаю).
Также посмотрел на идентификаторы: кажется, система пытается отправить сводку чата всем пользователям
Это нормально?
Обновление:
Отключение чата предотвращает повторное добавление этих задач в очередь, но мой сайт в какой-то мере нуждается в функции чата, и я всё ещё ищу другие решения.
Ещё одно обновление:
Я отключил функцию чата на 2 дня, затем снова включил её и изменил настройку «Дни хранения канала чата» с 180 на 3 дня. Теперь всё, кажется, работает нормально, но я всё ещё буду следить за этим.
Обновление 02/01:
Я установил дни хранения на 7. Сейчас в очереди около 1 101 685 задач. Похоже, мой сервер справляется с таким объёмом, и сайт не начинает работать медленно.
Извините за это, @th21 — это действительно была ошибка, которая будет исправлена в
У нас был запрос, который перечисляет всех «пользователей с непрочитанными» упоминаниями или личными сообщениями в чате. Пытаясь быть слишком хитрыми, мы допустили ошибку. Вместо того чтобы поставить в очередь «сводку чата» (то есть уведомление по электронной почте) для упоминаний в каналах или непрочитанных сообщений в личных переписках, мы ставили в очередь задачу для каждого сообщения Поскольку эта задача выполнялась каждые 5 минут, она легко переполняла Sidekiq бесполезными задачами… (примечание: к счастью, письма не отправлялись, так как мы не смогли бы извлечь какие-либо упоминания).