1
我有一個.NET Web服務[WCF託管在IIS],現在需要實現一個將長期運行的任務的方法。 該實現的最佳實踐是爲了避免阻塞ASP.NET線程池中的線程?
此外,在WCF中使用任務並行庫[TPL]有意義嗎? 非常感謝您的支持Web服務中長時間運行的任務
我有一個.NET Web服務[WCF託管在IIS],現在需要實現一個將長期運行的任務的方法。 該實現的最佳實踐是爲了避免阻塞ASP.NET線程池中的線程?
此外,在WCF中使用任務並行庫[TPL]有意義嗎? 非常感謝您的支持Web服務中長時間運行的任務
池中的線程並不是真正的稀缺資源。除非你打算同時消費數百個,這是不值得擔心的。
長時間運行的後臺任務最好實現爲LongRunning
Task
。一定要抓住任何錯誤,以便了解錯誤。
另請注意,當工作進程關閉(部署,崩潰,重新引導,...)時,後臺工作可隨時消失。
最簡單的方法是不做後臺工作。也許客戶端可以運行一個非常長的運行WCF請求,並在請求線程上執行所有這些。這爲您處理線程和錯誤。
我建議使用異步/等待模式。如果正確實施,它不會阻止並更有效地使用資源。 –
你的意思是,異步/等待模式也可以,如果WCF是IIS託管的?它不會抓住ASP.NET線程池中的線程嗎?那麼在WCF中使用TPL呢? – defelix
我忘了說長時間運行的任務是CPU綁定的,而不是I/O綁定的。 – defelix