Как настроить уведомления о пользовательских событиях в моем коде? - PullRequest
0 голосов
/ 26 октября 2010

Я пишу веб-приложение для совместной работы на PHP, и у меня есть несколько событий, о которых пользователи получают уведомления по электронной почте и / или через SMS. В настоящее время я делаю это следующим образом:

  • Каждый пользователь имеет свои настройки уведомлений в базе данных в виде логических переменных.
  • Скажем, пользователи будут уведомлены, когда кто-то оставит комментарий на странице команды. Когда вызывается функция, которая публикует комментарий, эта же функция будет содержать дополнительный код, который проверяет, «кто хочет быть уведомленным об этом?» а затем отправляет им уведомления (что немного замедляет работу функции).

Существует ли более эффективный / быстрый / гибкий способ настройки уведомлений? может быть через скрипт, который запускается через задание cron? или я просто буду продолжать делать это так?

Я ценю вашу помощь.

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Я реализовал метод, похожий на тот, который вы используете на веб-сайте с использованием нескольких таблиц. В таблице пользователей содержалась контактная информация, а также параметры отказа и отказа, а в таблице событий содержались инструкции для уведомления. Несколько других событий были жестко запрограммированы из-за их важности. То, что отличало сайт немного, было областью «рабочего процесса» на приборной панели пользователя, которая также показывала пользователю, какие элементы действий у него были. Мы обнаружили, что большинство пользователей игнорировали электронные письма и имели дело непосредственно с этой областью рабочего процесса панели. Вы будете удивлены, сколько раз люди меняют электронные письма или просто игнорируют их.

При 280 000 пользователей и ежедневных посещениях в десятки тысяч не было замечено проблем с производительностью. Тем не менее, процесс постановки электронной почты в очередь может быть неэффективным, если вы не будете осторожны, поэтому потратьте определенное время, чтобы сравнить свои функции отправки почты - это так же просто, как выводить микро-время до и после отправки почты - чтобы оценить его эффективность. , На моем текущем сайте компании такие улучшения привели к сокращению времени организации очередей электронной почты на 800% (очередь - это процесс создания электронных писем и отправки их через php mailer в почтовую систему для распространения)

1 голос
/ 26 октября 2010

Я бы сказал, есть таблица, которая представляет собой очередь уведомлений. Пусть функция, которая публикует комментарий, по-прежнему проверяет "кто хочет получать уведомления об этом?" но затем просто зарегистрируйте записи, содержащие сообщения в этой таблице. Затем создайте отдельную работу процесса из очереди, то есть ваше предложение о работе cron.

В зависимости от вашей базы данных вы можете использовать события или триггеры базы данных вместо задания cron. Это, однако, требует, чтобы ваша база данных позволяла вам помещать в базу данных код, который будет отправлять SMS или электронную почту. Это обычно создает угрозу безопасности, о которой вы можете беспокоиться или не беспокоиться при настройке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...