當某些日期發生或滿足某些業務條件時,我們需要能夠發送自動電子郵件。我們正在建立這個系統來處理現有的ASP.NET網站。我和其中一位開發者聊了一下,並討論了一些問題。在ASP.NET中執行批量處理頁面
注意事項:
- 所有我們需要的信息在ASP.NET網站已經建模
- 有所需的郵件生成這也是該網站的一些業務邏輯已經
我們認爲理想的解決方案是安排一個單獨的可執行文件,該文件計劃在夜間運行並執行處理和電子郵件。該解決方案有兩個主要問題:
- 如果網站被更新(業務邏輯或模式),但可執行文件意外丟失,則可執行文件可以停止發送電子郵件,或者更糟的是,基於過時的邏輯將送給他們。
- 我們希望使用類似this使用用戶控件到模板中的電子郵件,我不相信這是可能的ASP.NET網站
的第一個問題之外本來可以避免與構建和部署腳本(我們現在正在研究),但我認爲我們不能解決第二個問題。
因此,我們決定的解決方案是有一個由SSIS定期調用的ASP.NET頁面,並執行一定數量的處理(例如30秒)然後返回。我知道ASP.NET頁面並不是進行這種處理的理想場所,但這似乎最符合我們的要求。我們考慮產生一個新的線程(不是來自工作者池)進行處理,但決定如果我們這樣做了,我們就不能使用返回的頁面來表示成功或失敗。通過在頁面的生命週期內處理,我們可以使用頁面內容來指示處理過程如何進行。
所以問題是: 這個設置有什麼技術問題嗎?
很顯然,如果您嘗試過這樣的事情,任何成功/失敗的報告將不勝感激。同樣可以提出其他建議。
乾杯,
爲什麼您認爲在單獨的線程中處理會比在頁面生命週期中處理更好?從我的閱讀中,只要應用程序在IIS應用程序池中循環使用,您創建的任何線程都會死亡。所以通過將它保持在頁面生命週期中,我們希望避免這種情況發生。 – David