Cómo diseñar un recordatorio de calendario / sistema de alerta
Tengo un sistema de calendario en mi aplicación web. Necesitamos implementar recordatorios.
¿Hay algún recordatorio / patrón de alerta o diseño del sistema, o mejores prácticas? Si es así o no, ¿cuáles podrían ser algunas formas de lograr esto?
Consideraciones de diseñ
Necesita poder cancelar / evitar recordatorios si el evento del calendario se elimina o cambia, o si el usuario desactiva el recordatorio para ese evento. Así que no podemos simplemente disparar y olvidarlos en una cola o algo así.Los recordatorios pueden ser X cantidad de tiempo antes del evento, X se configura en la configuración del evento del calendarioReminders no necesita ser súper preciso (al segundo o incluso minuto). + - 5 minutos está bien. No quiero calcular previamente los recordatorios porque el mantenimiento se convierte en una pesadilla a medida que cambian los eventos del calendario, especialmente cuando se trata de eventos recurrentes.Hasta ahora mi diseño es algo como esto:
Haga que se ejecute un trabajo programado cada 10 minutos.El trabajo toma todos los eventos relevantes posibles y calcula las posibles ocurrencias para el siguiente intervalo de 10 minutos (filtrando eventos que no tienen un recordatorio establecido).Job llama a un punto final de API en el lado de mi servidor que activa una notificación frontal y un recordatorio por correo electrónico para todas las partes relevantes.¿Pero tal vez hay patrones más elegantes que este? Algo ya establecido? ¿O alguna herramienta en azul etc.
Nuestro stack es .net y azure.