В моем веб-приложении есть календарная система. Нам нужно внедрить напоминания.
Существуют ли какие-либо шаблоны напоминаний / предупреждений, конструкции системы или передовые методы? Если да или нет, то какими способами можно добиться этого?
Рекомендации по дизайну
- Необходимо иметь возможность отменять / предотвращать напоминания, если событие календаря удалено или изменено, или если пользователь отключит напоминание для этого события. Так что мы не можем просто выстрелить и забыть их в очереди или что-то в этом роде.
- Напоминания могут быть за X времени до события, X устанавливается в настройках события календаря.
- Напоминания не должны быть сверхточными (с точностью до секунды или даже минуты). + - 5 минут нормально.
- Не хочу предварительно рассчитывать напоминания, потому что тогда обслуживание становится кошмаром при изменении календарных событий, особенно когда речь идет о повторяющихся событиях.
Пока что мой дизайн выглядит примерно так:
- Запускайте запланированное задание каждые 10 минут.
- Задание собирает все возможные релевантные события и вычисляет потенциальные события для следующего 10-минутного интервала (отфильтровывая события, для которых не установлено напоминание).
- Работа вызывает конечную точку API на моей стороне сервера, которая запускает уведомление внешнего интерфейса и напоминание по электронной почте для всех соответствующих сторон.
Но, может быть, есть более изящные узоры, чем этот? Что-то уже установлено? Или какой-нибудь инструмент в лазурном цвете и т. Д.?
Наш стек - это .net и лазурный.