我有了一個長期運行的(資源密集型)的過程中後面的代碼,並最終輸出爲PDF文件(圖片爲PDF轉換工具)長期運行的進程
它的Web應用程序運行良好..因爲我在專用服務器上,所以現在對於資源來說完全沒有問題。
但是,如果每次處理的用戶超過20人,我不知道系統會達到其資源限制。
我在網上看到了用戶輸入他們的電子郵件的服務,我想這些進程在後臺排隊,並且結果通過第一個輸出方法通過電子郵件發送。
有人能給我一個關於如何在使用C#的asp.net應用程序中實現這種邏輯的開始嗎?
我有了一個長期運行的(資源密集型)的過程中後面的代碼,並最終輸出爲PDF文件(圖片爲PDF轉換工具)長期運行的進程
它的Web應用程序運行良好..因爲我在專用服務器上,所以現在對於資源來說完全沒有問題。
但是,如果每次處理的用戶超過20人,我不知道系統會達到其資源限制。
我在網上看到了用戶輸入他們的電子郵件的服務,我想這些進程在後臺排隊,並且結果通過第一個輸出方法通過電子郵件發送。
有人能給我一個關於如何在使用C#的asp.net應用程序中實現這種邏輯的開始嗎?
這樣的系統將包含在服務器上運行的Windows服務。 asp.net頁面唯一做的就是向數據庫提交一個請求(包含相關數據)。然後,Windows服務監控該表並處理所有新請求。
您想限制併發請求的數量。您可以創建一個單獨的應用程序來處理轉換過程。 Windows服務或定期運行的計劃任務。
有關外部程序處理轉換的重要部分是,您可以在多臺機器上加載程序以更快地處理請求,而且它不必減慢使用的Web /應用程序服務器的速度處理網站。
正如克勞斯正確地指出,我們已經使用Windows服務
補遺他的回答來實現它:
(I)拆分長時間運行的過程分解成多個任務
(二)對於每一個任務,創建單獨的控制檯應用程序&使用applicationId標識每個應用程序。
enum ApplicationId:byte
{
Router = 1,
Task1 = 2,
Task2 = 3,
Task3 = 4,
Task4 = 5,
Email = 6
}
(iii)將一個應用程序作爲路由器調用。它會將事務從一個應用程序移動到另一個(iv)現在創建一個帶有transactionId,nextAppId和任何其他相關字段的表格
(v)完成任務後,更新表
中的nextAppId (vi)安排Windows任務計劃程序中的所有應用程序或使用活動批處理服務器(市售)
(VII)的最後一個應用程序的「電子郵件」發送電子郵件與生成的PDF作爲附件到用戶
希望這答案!!!!。祝你今天愉快!!!
謝謝您的回覆。 如果我理解錯了,請原諒我。 1.因此,我創建了一個win服務,可以將輸入的圖像位置和電子郵件地址作爲輸入,並輸出pdf文件的位置。 2.當從Web界面提交請求時,我會將圖像位置和電子郵件地址記錄到數據庫中。並可以說一個專欄說完或不。 我不明白如何做你的第二點。 你如何有Windows服務來監視數據庫? 你能帶我到教程或給我一個片段? 非常感謝, Prasad。 – pessi 2010-05-12 13:47:21