0
調用不同的線程外部Web服務這是當前功能:從Web服務
- 我的網站叫我的ASP.NET Web服務同步。
- 我的web服務在數據庫中創建一條記錄。
- 我的網絡服務立即向網站返回新的記錄ID。
- 我的網站向用戶顯示該記錄ID。
這一直工作正常。我必須添加一項功能,以便在步驟2之後,我的Web服務將調用1到6(取決於條件)外部Web服務。所以它看起來像這樣:
- 我的網站同步調用我的ASP.NET Web服務。
- 我的web服務在數據庫中創建一條記錄。
- 我的Web服務調用外部Web服務。合併結果並保存在數據庫中。
- 我的網絡服務向網站返回新的記錄ID。
- 我的網站向用戶顯示該記錄ID。
由於此新功能,現在網站請求可能需要10分鐘。所以這就是我想要實現新功能的方式。
- 我的網站同步調用我的ASP.NET Web服務。
- 我的web服務在數據庫中創建一條記錄。
- 我的web服務創建一個新線程並在該線程上調用一個方法(fire and forget)。此方法將調用外部Web服務,合併結果並保存在數據庫中。由於這將在另一個線程上,執行將在完成步驟3之前立即轉到步驟4.
- 我的Web服務立即向網站返回新記錄ID。
- 我的網站向用戶顯示該記錄ID。
此外,我想爲步驟3中創建的線程設置一些超時,以便任務必須在10分鐘內結束,如果不中止線程。
我試過ThreadPool.QueueUserWorkItem,它甚至沒有被調用,因爲它是後臺線程。最初線程/ Task.TaskFactory似乎是可行的,但爲每個請求創建一個新線程似乎並不是最佳實踐。
有人可以提供一些VB.NET代碼/參考的步驟3?特別是在一個單獨的線程上調用外部Web服務,如fire和forget,併爲該線程設置超時值?
感謝
你有什麼嘗試?創建一個新的線程已經有很好的文檔記錄,並有大量代碼示例。你有沒有嘗試過某些東西,並得到錯誤,或者... http:// mattgemmell。COM/2008/12/08 /什麼具備的,你試了/ – David 2012-04-18 21:33:38