В проекте, над которым я работаю, пользователи могут подписаться на курс. Продолжительность курса варьируется, рассчитывается в неделях (так 4, 5 или 6 недель). Они могут подписаться в любой момент, поэтому дата начала для каждого пользователя отличается.Выберите пользователей для отправки еженедельного обновления
Теперь я хочу отправить пользователям персонализированную электронную почту в начале каждой недели (так, когда они войдут во вторую, третью и т. Д.). Электронная почта разная неделя.
Я знаю, что мне нужно написать задание и запланировать это на регулярной основе, но я не уверен, как выбрать правильных пользователей. Я мог бы написать SQL-команду, выбрав всех пользователей, где дата начала 7, 14, 21 или 28 дней назад, и вычислить, на какой неделе они находятся, но это кажется довольно склонным к ошибкам (что, если задача не выполняется, тогда они не получат сообщение в следующем цикле задач).
Что было бы лучшим способом достичь этого?
Проект представляет собой приложение ASP.NET MVC в C#, с NHibernate в IIS.
«Что делать, если задача не удалась, тогда они не получат сообщение в следующем цикле задач». Если вы хотите восстановить автоматически, вы должны выбрать всех пользователей, которые заходили за последние 28 дней, даже если это не точно 7 , и зайдите в отдельную таблицу «отправили электронную почту пользователя X на дату Y», затем проверьте, есть ли какие-либо неподтвержденные письма для отправки. Или сделайте это руководство: отправьте предупреждения администратора о любых сбоях, а затем выполните шаги и исправьте их в день. – Rup