Перейти к контенту
  • 0

Система почтовых рассылок на подписаные темы валит БД


DarkBMW

Вопрос

Уважаемые, такой вопрос. Форум падает 1-2 раза в сутки (502, 504, MSQL error). Мет одом проб и исключений установлено, что если отключить рассылку уведомлений на подписанные темы для пользователей - то тогда пиковых нагрузок нет и форум работает стабильно. 

Как можно привести в порядок эти рассылку уведомлений, чтоб не падал форум? 

Заранее спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Есть такая проблема. Фундаментально не решается. Виснет в одно и то же время или случайно? Если виснет при отправке дайджеста задачей, то вероятно из-за медленного ответа smtp сервера при отправке почты. Если виснет случайно, то провоцирует отправка сообщения в тему/форум с большим количеством подписчиков. Проредить подписчиков и никогда не пользоваться опцией "автоматически подписывать на все форумы" в настройках профилей.

,  

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Есть такая проблема. Фундаментально не решается. Виснет в одно и то же время или случайно? Если виснет при отправке дайджеста задачей, то вероятно из-за медленного ответа smtp сервера при отправке почты. Если виснет случайно, то провоцирует отправка сообщения в тему/форум с большим количеством подписчиков. Проредить подписчиков и никогда не пользоваться опцией "автоматически подписывать на все форумы" в настройках профилей.

,  

 

Виснет в разное время. Грешу на большое кол-во подписчиков. Автоподписка убрана :( Можно разрешить подписку только определенной группе пользователей? 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Если проблема в количестве подписчиков, то проблему легко воспроизвести. Найдите тему и форум с максимальным количеством подписчиков и создайте в них сообщение и тему соответственно. Если при этом вы не столкнетесь с той же ошибкой, то проблема не в подписке. Просто производительности не хватает в моменты пиковой нагрузки. Тогда надо увеличить количество соединений в MySQL, увеличить таймаут на исполнение в php, количество одновременных соединений в apache/nginx . 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А как можно на данный момент отписать всех пользователей от всех тем? Грубо говоря - обнулить все подписки. 

И еще вопрос - что меньше жрет ресурсы - емэйл уведомления или внутрисистемные? 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Жрет примерно одинаково. Емейлы не отправляются прямощас. Они складываются в таблицу bulk_mail и уезжают порциями с другими запросами. Внутрисистемные уведомления складываются в табличку inline_notification и  показываются юзерам. Если внутрисистемные уведомления долго хранятся, то табличка может вырастать до внушительных размеров, и sql может довольно долго искать в ней то, что нужно показать в правом верхнем углу каждой страницы. За подписки отвечает core_like и core_loke_cache, но там не все так однозначно )
 
Вы проведите эксперимент, как я вам выше написал. Чтобы получить самый список форумов по количеству подписчиков подойдет такой запрос:

SELECT `like_rel_id`, count(`like_rel_id`) 
FROM `core_like`
WHERE `like_area` = 'forums'
GROUP BY `like_rel_id`
ORDER BY count(`like_rel_id`) DESC 

 Только перед названием таблички (core_like) еще префикс ваш надо вставить и для топиков заменить 'forums' на 'topics' .

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.