Mam aplikację ASP.NET MVC, która wykorzystuje usługi NHiberante i SQL Server 2008 na zapleczu. Istnieją wymagania dotyczące wysyłania powiadomień o zdarzeniach związanych z wydarzeniami w trybie z codziennymi/cotygodniowymi powiadomieniami AND o ogólnych powiadomieniach tygodniowo.Aplikacja ASP.NET MVC + SQL Server: najlepszy sposób wysyłania powiadomień e-mail sterowanych zdarzeniami
Oto przykład tego, jak workflow zdarzeniami musi pracować:
- pracownika (ów) tworzy kilka zamówień.
- Powiadomienie e-mail jest wysyłane codziennie do dowolnego przełożonego z podległym pracownikiem, który złożył zamówienie zakupu z listą wszystkich zamówień złożonych przez podwładnych, które wymagają jego zatwierdzenia. Przełożony powinien otrzymać to tylko raz (np. Jeśli Pracownik A utworzy PO, jego przełożony nie powinien otrzymywać wiadomości e-mail KAŻDEGO DNIA, zanim nie zatwierdzi). Ponadto lista zamówień powinna obejmować TYLKO te, na które osoba nadzorująca NIE podjęła działań. Jeśli żadne zamówienia zakupu nie wymagają zatwierdzenia przez danego przełożonego ... nie powinny otrzymywać wiadomości e-mail.
- Powiadomienie e-mail wysyłane jest codziennie do Departamentu Kierowników z listą wszystkich zamówień ZATWIERDZONY przez podległych przełożonych w sposób podobny do punktu 2 powyżej.
- Za każdym razem, gdy podejmowana jest decyzja o zatwierdzeniu zamówienia przez przełożonego lub dział. menedżer, pracownik powinien codziennie otrzymywać powiadomienia e-mail z wykazem WSZYSTKICH takich zmian. Jeśli nie ma żadnego dla danego pracownika, nie powinien on w ogóle otrzymywać wiadomości e-mail.
Więc biorąc pod uwagę taki obieg:
- , co jest najlepszym sposobem, aby zaplanować takie zgłoszenia się zdarzyć codziennie, co tydzień lub nawet natychmiast po wystąpieniu zdarzenia?
- W jaki sposób zapewnisz, że takie powiadomienia kierowane zdarzeniem będą WYŁĄCZNIE dostarczane jednorazowo?
- Jak obsługiwać wyjątki, aby upewnić się, że nieudane próby wysłania wiadomości e-mail są rejestrowane i aby można było wysłać próbę wysłania następnego dnia?
Dzięki!
może to potencjalnie Timeout Jeśli dużo e-maili są wysyłane? – wgpubs
Potencjalnie tak (to zależy od serwera pocztowego, serwera WWW, etc). Przetestuj go i dostosuj odpowiednio ustawienie 'HttpContext.Server.ScriptTimeout'. –