[英]Asp.Net - Offload processing to external application
我有一個asp.net網站,使用第三方exe處理請求。 目前我的工作流程是
用戶使用任何瀏覽器訪問網站,並填寫包含作業詳細信息的表單
網站調用WCF自托管Windows服務,該服務正在偵聽端口
Windows服務啟動第三方exe來處理作業並將結果返回給網站
網站將返回的結果顯示給用戶
上面的網站是一個原型,現在需要轉變為生產就緒部署。 我意識到上述架構有許多可能會破壞的點。 例如,如果機器電源關閉或者Windows服務崩潰並且不再監聽端口,則所有當前請求都將停止處理。 為了使架構更加健壯,我正在考慮以下內容
用戶使用任何瀏覽器訪問網站,並填寫包含作業詳細信息的表單
網站將作業詳細信息寫入數據庫
為新作業每10秒輪詢一次數據庫的Windows服務將獲取作業並使用第三方應用程序執行該作業。 結果將寫回數據庫。
現在已經開始輪詢數據庫的網站,獲取結果並將其顯示給用戶。
第二種體系結構為我提供了更多的日志記錄功能,如果它們在隊列中,則可以再次啟動作業。 然而,它涉及大量的輪詢,可能無法擴展。 有誰能推薦更好的架構?
我在我的一個應用程序中實現了相同的架構,用戶正在處理多個請求。 所以我有 -
而不是輪詢我會選擇MSMQ或RabbitMQ 。
這樣,您可以將處理卸載到隊列的多個使用者(可能是Web服務器的不同服務器),並且並行處理更多請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.