2012-04-24 62 views
3

谷歌在這方面真的讓我失望了。我是新來的Azure和我只在.NET在Azure中產卵並執行一個Worker過程

中間我有一個Azure的解決方案去,我已經寫在運行大的Web角色一些代碼。我想現在要做的就是將一些這個代碼到Azure的工人,這將是一個控制器功能在Web角色

究竟是什麼,我需要做的就是這個地方去進行初始化?我在SLN中創建了Worker項目。我只需要知道如何啓動並運行它。

我想我的問題的一部分,是我假定這些工人的行爲像Heroku的工人......是這樣的話?因爲我需要的是類似隊列系統(在一個大隊列中的一羣「工人任務」)。

很多我找到的教程的鏈接似乎挖掘圍繞如何真正從一個Web角色初始化過程的舞蹈。

回答

4

Windows Azure中的工作人員不是任務;他們是整個虛擬機。爲了讓您的生活更輕鬆,請記住這個小小的細節:Web角色實例是運行IIS的Windows Server 2008,並且Worker角色與IIS禁用時是一樣的。

當您添加了輔助角色到你的項目,你實際上現在有一組新的虛擬機器上運行(至少一個,取決於實例數設置)。這些虛擬機擁有自己的OnStart()和Run()方法,您可以將代碼放入,以便進行引導。

如果你抓住Windows Azure training kit,你會看到幾個實驗室展示瞭如何在各種角色實例之間進行通信(一種常見模式是使用Windows Azure隊列)。 Guestbook動手實驗室(第一個實驗室)有一個很好的後臺流程示例。

-1

我想你只是無法啓動天青模擬器以及你的工人/網絡角色?只需將azure配置項目設置爲啓動項目並運行即可。它將啓動模擬器以及您的所有角色。在這個

+0

因此,一個工作者角色幾乎與一個Windows服務相同。如上所述,在本地啓動它。你的問題標題+「我只需要知道如何啓動並運行它。」可能有點誤導。如果您更關心設置服務來使用作業,那麼您可能希望使用存儲客戶端隊列或類似的東西來進行租用和執行作業。儘管如此,你還沒有真正提供關於你需求的細節。不知道你想從哪裏種下工作。 – 2012-04-24 16:42:40

1

更多信息,因爲我已經得到了,現在去..

如果你從Heroku的背景的,那麼Azure的工人或多或少Rails中的功能,你實際上會用隊列執行。與Heroku排隊的操作不同,Azure Worker只是無休止地運行,並且不斷輪詢新的內容......因此Run()函數中的模板化睡眠(10000)。

我發現使Web和Worker互相通信的最常規方式是通過Azure ServiceBus隊列消息,該消息當前不被模擬,這意味着您需要一個正常運行的Azure帳戶才能完成此項工作,即使你在本地運行也能工作。你只需要上網。

甲ServiceBus消息可以傳遞整個對象轉移到工(只要工人PROJ中有正確的依賴關係),所以這是種不錯的。

+0

如果您想使用模擬的隊列,則可以使用Azure存儲隊列。 – knightpfhor 2012-04-26 02:57:24