2012-06-23 98 views
7

我正在開發使用App Harbor的基於回合的遊戲的後端服務器,因此它似乎完全適合我的需求。我真的想運行一個後臺進程來處理轉換數據等,我想知道是否有人可以澄清'網絡工作者'和'背景工作者'之間的區別是什麼?我對Web開發的體驗相當有限,但據我所知,'Web工作人員'用於與AJAX頁面交互(我不需要),'Background workers'允許您在後臺運行控制檯應用程序(我確實需要!)App Harbor上的'Web workers'和'Background workers'之間的區別

謝謝!

回答

5

Web工作人員與瀏覽器的請求連接,並可以在瀏覽器上獲取和發送數據到請求。

後臺工作人員是獨立的線程,不與任何請求連接,不能單獨發送數據到瀏覽器*。

[*]只能通過網絡工作者。

4

通常'網絡工作者'是web應用程序,或者是處理來自用戶的請求的ASP.NET網站/服務。 「後臺工作人員」只是一個計劃任務。它在後臺運行,按指定的時間間隔運行,並執行一些代碼。

不同之處在於,Web工作人員在發出新的請求時會執行一些工作。請求意味着某人在ASP.NET上加載頁面/調用Web服務。而後臺工作人員正在某個時間間隔啓動,並且不需要用戶加載要執行的頁面。它主要用於處理長時間運行的任務。通常的工作流程是 - 網絡工作人員收到來自用戶的請求,並排隊處理一些數據。在下一次運行時,後臺工作人員獲取數據並對其進行處理,並將數據存儲在某處(通常在數據庫中)。然後,網絡工作人員根據用戶的下一個請求檢查數據庫以及結果是否存在 - 將其顯示給用戶。

這樣用戶不需要等待asp.net頁面來處理數據並立即返回結果。