Tôi có một ứng dụng ASP.NET MVC sử dụng NHiberante và SQL Server 2008 trên chương trình phụ trợ. Có các yêu cầu để gửi cả hai thông báo theo sự kiện theo định hướng trên cơ sở hàng ngày/hàng tuần VÀ chung thông báo hàng tuần.ASP.NET MVC + Ứng dụng SQL Server: Cách tốt nhất để gửi thông báo E-mail theo sự kiện
Dưới đây là một ví dụ về cách thức làm việc hướng sự kiện cần phải làm việc:
- nhân viên (s) tạo ra một số đơn đặt hàng.
- Thông báo e-mail được gửi hàng ngày đến bất kỳ người giám sát nào với một nhân viên cấp dưới đã thực hiện đơn đặt hàng với danh sách tất cả các đơn đặt hàng được tạo bởi cấp dưới yêu cầu sự chấp thuận của ông. Người giám sát chỉ nên nhận điều này một lần (ví dụ: nếu Nhân viên A tạo PO, người giám sát của anh ấy sẽ không nhận được email M EVI NGÀY cho đến khi anh ấy chấp thuận). Ngoài ra, danh sách đơn đặt hàng chỉ nên bao gồm các đơn hàng mà người giám sát KHÔNG thực hiện hành động chống lại. Nếu không có đơn đặt hàng nào cần sự chấp thuận của một giám sát viên cụ thể ... họ sẽ không nhận được e-mail.
- Thông báo bằng e-mail được gửi hàng ngày tới Bộ phận Người quản lý có danh sách tất cả đơn đặt hàng đã được người giám sát cấp dưới tán thành theo cách tương tự như số 2 ở trên.
- Bất kỳ lúc nào bất kỳ hành động nào được thực hiện liên quan đến việc phê duyệt PO của người giám sát hoặc phòng ban. quản lý, nhân viên sẽ nhận được một thông báo e-mail hàng ngày liệt kê TẤT CẢ những thay đổi như vậy. Nếu không có ai cho một nhân viên cụ thể, họ sẽ không nhận được một e-mail nào cả.
Vì vậy, cho một công việc như:
- cách tốt nhất để sắp xếp các thông báo như vậy xảy ra hàng ngày là gì, hàng tuần hoặc thậm chí ngay sau khi một sự kiện xảy ra?
- Làm cách nào để đảm bảo rằng các thông báo hướng sự kiện như vậy CHỈ được gửi một lần?
- Bạn xử lý các ngoại lệ như thế nào để đảm bảo rằng các nỗ lực gửi e-mail không thành công được ghi lại và để có thể thực hiện một nỗ lực để gửi ngày hôm sau?
Cảm ơn!
Điều này có khả năng hết thời gian chờ nếu A LOT của e-mail đang được gửi không? – wgpubs
Có khả năng có (nó sẽ phụ thuộc vào máy chủ thư, phần cứng máy chủ web, v.v.). Kiểm tra và điều chỉnh cài đặt 'HttpContext.Server.ScriptTimeout' tương ứng –