2017-08-28 116 views
0

我正在構建一個ASP.NET Core Web應用程序,我需要運行一些複雜的任務,需要花費相當長的時間才能完成,從幾秒到幾分鐘。用戶不必等待整個任務運行,但是我需要隨着任務的進度更新UI。我想到了在ASP.NET服務器中處理這個問題的兩種方法:一種使用後臺線程,另一種使用單獨的進程。我不希望長時間運行的任務會以任何方式妨礙Web應用程序。與過程相比,使用線程是否安全?或者在單獨的過程中運行這些任務是一種更好,更高效的方式?在單獨的後臺線程vs進程中運行長時間後臺任務

回答

4

我想說在另一個過程中。把它放在一個隊列中,並有一個單獨的進程處理隊列,當完成通過發佈工作完成消息或其他信息發送信號給Web應用程序。

如果您在Web應用程序內部使用常規線程,並且服務器在進程中間關閉,或者Web應用程序被回收,則可能會產生一些不良影響。

一些其他的選擇進行了概述here

0

你應該有不同的想法,在這樣的情況總是想着實時通知方法,如signalR,通過它可以激發您的請求,你不必再擔心,一旦它已經完成了它會標示你的應用程序,並且你將可以訪問你可以根據你的業務操縱的所有數據。訪問此鏈接瞭解更多信息An Introduction to SignalR