У меня есть приложение ASP.NET MVC, которое использует NHiberante и SQL Server 2008 на сервере. Существуют требования для отправки как событийных уведомлений на ежедневной / еженедельной основе, так и общих уведомлений на еженедельной основе.
Вот пример того, как должен работать рабочий процесс, управляемый событиями:
- Сотрудник (и) создает несколько заказов на поставку.
- Уведомление по электронной почте отправляется ежедневно любому руководителю с подчиненным сотрудником, который сделал заказ на покупку со списком всех заказов на покупку, созданных подчиненными, которые требуют его утверждения. Супервизор должен получить это только один раз (например, если Сотрудник А создает ЗП, его руководитель не должен получать электронное письмо КАЖДЫЙ ДЕНЬ, пока он не одобрит). Кроме того, в список заказов на закупку следует включать ТОЛЬКО те заказы, против которых надзорный орган НЕ принял никаких мер. Если заказы на закупку не требуют одобрения со стороны конкретного руководителя ... они не должны получать электронное письмо.
- Уведомление по электронной почте отправляется ежедневно менеджерам отделов со списком всех заказов на закупку, УТВЕРЖДЕННЫХ подчиненными руководителями аналогично пункту 2 выше.
- Каждый раз, когда предпринимаются какие-либо действия в отношении утверждения заказа на поставку надзорным органом или отделом. менеджера, сотрудник должен получать уведомление по электронной почте ежедневно со ВСЕМИ такими изменениями. Если их нет для данного сотрудника, он вообще не должен получать электронную почту.
Итак, учитывая такой рабочий процесс:
- Как лучше всего запланировать получение таких уведомлений ежедневно, еженедельно или даже сразу после наступления события?
- Как обеспечить доставку таких событийно-ориентированных уведомлений ТОЛЬКО один раз?
- Как бы вы обрабатывали исключения, чтобы обеспечить регистрацию неудачных попыток отправки электронной почты и возможность ее отправки на следующий день?
Спасибо!