2013-10-16 51 views
0

我有一個ASP.WEB Web Api控制器,需要觸發並忘記一些慢速代碼。什麼會是一個很好的方法來做到這一點?那就是我希望控制器向瀏覽器返回HTML響應,而慢速代碼則繼續運行。從Web Api請求開始後臺任務

是否從踩踏池中抓取工作線程並傳入由控制器創建的複雜對象是一個好主意?還是我需要編寫一個單獨的Windows服務來完成這項工作?

+0

作業完成後需要回復嗎? – Ngm

回答

2

您的解決方案取決於具體情況或您的情況以及您的工作量。 當您收到請求時,您肯定可以開始新任務Factory.StartNew。這在技術上沒有任何不妥。 您應該考慮的事項:

  1. 我是否必須將數據返還給客戶?
  2. 此任務將耗盡網絡服務器資源,因此如果這些任務需要很長時間,並且您獲得大量流量,則可能會遇到客戶排隊等待剛開始處理的情況。在這種情況下,我認爲使用Windows Service的後端服務器是一個更好的主意。
  3. 以上所有任務均受IIS重置限制。他們可能在處理您的後臺任務時被殺害。