2014-09-13 120 views

回答

78

的一些基本信息:

WebJobs有利於不需要他們在運行環境中的任何定製,並且不消耗非常多的資源,輕巧的工作項目。它們對於只需要定期運行,計劃或觸發的任務也非常有用。它們便宜且易於安裝/運行。他們在您的網站上下文中運行,這意味着您獲得與您的網站運行相同的環境,並且他們使用的任何資源都是您的網站無法使用的資源。

工作角色適用於更多資源密集型工作負載,或者需要修改運行環境(即特定.NET框架版本或安裝到OS中的某個環境)。工人角色更昂貴,設置和運行也更難,但他們提供了更多的權力。

一般來說,我會先從WebJobs開始,然後轉移到Worker Roles,如果您發現您的工作負載需要的不止是WebJobs可以提供的。

+2

很高興知道......即使我處理雲服務(網絡角色),我可以先從webjob開始進行後臺處理(輕量級),然後根據需要切換到workerrole。 WorkerRole並不總是默認的選擇。由於工作角色與雲服務模板一起出現,並且Web作業與模板角度不同,因此這可能不太明顯。謝謝! – Lalman 2015-03-16 13:44:18

19

如果我們要測量「功率」作爲計算能力,那麼在虛擬環境中,這意味着物理機器(金屬)上有多少層。虛擬機上的用戶代碼運行在管理物理機器的管理程序之上。這是最厚的一層。只要有可能,管理程序就會試圖簡單地作爲金屬的傳遞。

WebJobs基本上沒有什麼開銷。這是沙盒,操作系統維護,並有服務&模塊,以確保它運行。但是應用程序代碼與Worker角色中的代碼基本上非常接近,因爲它們使用相同的管理程序。

如果你想要測量的是「靈活性」,那麼使用工作者角色,因爲它不被管理或沙箱化,所以更靈活。你可以使用更多的插座,定義你自己的環境,安裝更多的軟件包等。

如果你想要的是「功能」,那麼WebJobs有一個完整的功能陣列。包括虛擬網絡到本地資源,分段環境,遠程調試,觸發,調度,易於連接到存儲和服務總線等...

大多數人希望專注於解決他們的問題,而不是投資時間在基礎設施。爲此,您使用WebJobs。如果您發現需要更大的靈活性,或者安全沙箱阻止您執行任何其他方式無法完成的操作,請轉至工作人員角色。

甚至有可能構建混合解決方案,其中一些部分在WebJobs中完成,其他部分在Worker Roles中完成,但這不在此問題的範圍內。 (提示:WebJobs SDK)

+0

「大多數人都希望專注於解決他們的問題,而不是在基礎設施上投入時間,爲此,您需要使用WebJobs。」 - 的確如此,但工作人員角色涉及的成本高於網絡工作。這意味着,人們選擇他們需要什麼和他們的預算是什麼,這是公平的! – Nirman 2018-01-04 09:18:46

10

出頭記住選擇使用Web工作或輔助角色時:

  • 輔助角色的自我託管在一個專用的虛擬機,網絡招聘在託管Web應用程序容器。

  • 工作者角色將獨立伸縮,Web作業將與Web應用程序容器一起伸縮。

網上工作是完美的輪詢RSS源,檢查和處理消息和發送通知,他們是重量輕,比工作者角色便宜,但不太厲害。

相關問題