Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Email рассылка подписчикам на комментрии замедляет процесс комментирования? Как быть?

Email рассылка подписчикам на комментрии замедляет процесс комментирования? Как быть?


     20.02.2023    комментарии    Все вопросы » Общие вопросы    508

вопрос
Столкнулся вот с какой проблемой.
В новостях у которых не сказать что-то прям уж очень много, но достаточное количество подписчиков на email уведомления на комментарии, очень медленно добавляются комментарии.
Например:
1. Новость у которой нет подписчиков = Моментальное добавление комментария
2. Новость у которой 20 подписчиков = Комментарий добавляется от 6 до 9 секунд.
3. Новость у которой 44 подписчика = Вообще невозможно дождаться добавления комментария, так как cloudflare после 30 секунд отдаёт ответ что типа сервер лежит.

Использую smtp от Яндекса.
SSL порт 465
В настройках DLE в разделе почты включена опция Использовать поле BCC для рассылки, которое ускоряет эту самую рассылку.
Ну в общем здесь всё норм настроено и всё норм работает, письма отсылаются.

Сервер у меня неслабый.
Выделенный, 20 ядер 48 гб оперативки.
Средняя нагрузка на сервер от 7 до 15%
Посещаемость сайта 30к в сутки.

DLE 15.2
PHP 7.2

В чём же может быть причина столь медленной рассылки?
И вообще, разве рассылка выполняется не в фоновом режиме? После нажатия добавить комментарий, форма сначала ждёт чтобы все письма разослались и уже потом добавляет комментарий?
Что можно сделать чтобы решить проблему, помимо отключения функции уведомлений на комментарии?

Ответил: Snake


Перешёл на php mail вроде проблема решилась.
Походу smtp яндекса тупил.

4 комментария

TeraMoune
Эксперт

TeraMoune - 20 февраля 2023 14:08 -

И вообще, разве рассылка выполняется не в фоновом режиме? После нажатия добавить комментарий, форма сначала ждёт чтобы все письма разослались и уже потом добавляет комментарий?

Нет, она выполняется в одном сценарии с добавлением комментария. То есть js скрипт на сайте ожидает завершения всего и только потом он возвращает ответ об успешном добавлении.

Сервер у меня неслабый.

Тут проблема не в вашем сервере скорей всего. А в особенности работы SMTP сервера. Который работает по принципу получение ответов на команды. И бывает так, что есть проблемы с доставкой, тогда SMTP может попробовать повторить запрос. Разумеется это всё занимает время.

Что можно сделать чтобы решить проблему, помимо отключения функции уведомлений на комментарии?

С вашей стороны почти ничего не сделать. Разве что убедится в том, что посетители используют нормальных провайдеров почты. Ну или можно попробовать сократить время ожидания ответа в классе engine/classes/mail.class.php. В $this->mail->Timeout который установлен по умолчанию в 10 секунд. Но я не знаю как изменение этого параметра повлияет на отправку писем в целом. Это лишь укажет дле не ждать слишком долго. А отправлять следующее письмо.

Походу smtp яндекса тупил.

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

Тестовый репозиторий установки плагинов: teramoune

Snake
Юзер

Snake - 20 февраля 2023 14:11 -

Спасибо за столь обширный ответ.
Пока что решил проблему переходом на php mail в настройках дле.

lutskboy
Эксперт

lutskboy - 20 февраля 2023 15:22 -

известная проблема. mail это хорошо. но со временем они будут попадать в спам

dj-avtosh
PHP-developer

dj-avtosh - 20 февраля 2023 15:32 -

Если это какая-то стандартная штука от dle - то пора бы Celsoft задуматься об очереди отправки сообщений. Ничего не мешает писать в таблицу и выполнять задачи где-то фоново.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх