Перейти к контенту
  • 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' .

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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