Как подписать всех пользователей на тему

Владимир Миронов

Проверенные
Сообщения
1,001
Реакции
770
Баллы
8,295
Как подписать всех пользователей с уведомлением на электронную почту на определённую тему через SQL запрос?
 
а просто делать рассылку не вариант, с ссылкой на тему?)))
Получается нужно дублировать информацию и в рассылке и в теме. Да и удобнее просто в теме написать новость и пользователи будут вкурсе.

Подписка всех пользователей очень удобна на темы "Новости форума" или "Правила". Если там появилось что то новое, то пользователи получат уведомление на почту. А то зачастую они не смотрят изменения в правилах.
 
это конечно минус, но бывают новости, которые пользователи должны получить. А рассылку каждый день например лень делать, проще написать сообщение в теме.
Ещё один минус, появляются новые пользователи. И получается надо как то автоматизировать подписку новых пользователей на тему.

Нужен будет плагин или через cron раз в сутки всех подписывать?
 
Последнее редактирование:
Владимир Миронов, получилось? Мне аналогичная возможность нужна. Только я помягче - просто уведомление, без отправки на емейл.
Определённую группу нужно подписать на тему, без сообщений на почту
Спасибо!

Ребята, плагин-то и не нужно, помогите, пожалуйста, соорудить sql запрос -)
СпасибО!
 
Если что - запрос-то я соорудил и пользуюсь постоянно.
Но теперь встала другая проблема. Как правильно тут заметили - бывает необходимость подписать ВСЕХ пользователей на какую-то важную тему.
Я это делаю мягко - без уведомлений на почту, так вот даже таким образом при моих 15 тыс пользователей при публикации нового сообщения в тему, где отслеживают тему 15 тыс пользователей происходит глюк:

При нажатии кнопки "ответить" визуально ничего не происходит - новое сообщение не добавляется, текст в окне редактора - остаётся.
При этом, на самом деле сообщение добавляется, но видно это только при обновлении страницы темы, поэтому по привычке жмёшь пару раз - появляются дубли сообщений.
При этом, видимо, не успевает в БД измениться состояние подписки всех этих 15 тыс пользователей - часть (может и все) не получают уведомления о новом сообщении в этой теме.

Запрос, что я делаю, чтобы подписать пользователей я делаю в лоб такой:

INSERT IGNORE INTO `xf_thread_watch` (`user_id`, `thread_id`, `email_subscribe`) VALUES
(1, 1568, 0),
..
..
(15000, 1568, 0);

При этом я пока не разобрался, в каких таблицах и каким образом происходит изменение состояния подписки и вывода уведомления - скорее в них и будет затык.
Ну я и не мастер ни разу, но что-то мне подсказывает, что:
либо таймауты публикации нужно как-то увеличивать, пока не пройдут все необходимые изменения;
либо индексы какие прописать для этих таблиц с изменениями;
либо я баклан, и нужно изменения вносить не только в эту таблицу, но и куда-то ещё -)
 
Проблема вся в том, что сам подход деструктивен. При изменении в теме движок начинает всем генерировать уведомления (по факту запись в таблицу переписок). Т.е. написал пост - сразу xf_conversation_message увеличил на 15к записей. Мягко говоря это ресурсоемко, занимает время и с ростом числа пользователей это перейдет в 50x-е ошибки либо по памяти, либо по таймауту.
 
Проблема вся в том, что сам подход деструктивен
Не, ну почему, это же функция движка. Неужели нет мощных движков, где могут быть подписаны 15к на тему.
ЛС никаких не создаётся, создаются уведомления. Это конечно тоже запись в таблицу.

Ошибок 5** быть не должно - это всё у меня настраивается на сервере и память и таймаут.
15к записей добавить в таблицу - это 0,06 сек. уже проверил. А вот где-то что-то не отрабатывает.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу