根據此答案here,我需要將電子郵件放入隊列並運行後臺任務併發送它們。我如何使用ASP.NET-MVC和WCF的體系結構來實現這一點?如何在asp.net-mvc/wcf應用程序中運行後臺代碼
- 如何建立隊列(sql server)?
- 如何構建後臺任務?
根據此答案here,我需要將電子郵件放入隊列並運行後臺任務併發送它們。我如何使用ASP.NET-MVC和WCF的體系結構來實現這一點?如何在asp.net-mvc/wcf應用程序中運行後臺代碼
你可以用許多不同的方式給這隻貓蒙皮。關鍵在於電子郵件的實際發送與電子郵件的排隊不同步。
HTH,
ž
我認爲你的解決方案是獨立於你使用MVC的事實。
我過去實現這一點的方式是堅持事實,您需要將一封電子郵件發送到數據庫,然後使用Windows服務進行處理。
另一種方法是將MSMQ用作存儲介質。一般來說,MSMQ不應該用來「存儲」數據,只能用作消息傳輸機制,但在這種情況下它肯定是一種選擇。
在開發「隊列」方面,如果電子郵件由於某種原因需要有序交付,只需在數據庫表中添加一個「RequestedDTTM」列,就可以按請求的順序發送它們。
最後,我會考慮實現一個簡單的多線程電子郵件發件人以最大限度地提高性能。在.NET 4.0中使用TPL會使這非常容易。或者,您可以使用類似SmartThreadPool庫(codeplex.com上提供的)來管理您的電子郵件發件人線程。
正如在你鏈接到的其他答案中提到的,你的UI不應該做這個電子郵件發送。
我不知道這是做一個偉大的方式,但它是對的NuGet的事實使得它的吸引力。 :) http://www.hanselman.com/blog/NuGetPackageOfTheWeek2MvcMailerSendsMailsWithASPNETMVCRazorViewsAndScaffolding.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29 – RMD