2011-08-29 85 views
2

我正在做我的第一個項目,但在開發具有集成組件的Azure應用程序方面很大。Azure工作者角色控制啓動停止和狀態

目前,大多數集成工作都是使用SSIS包完成的,並希望將它們轉換爲Azure中的工作者角色。

有人請幫我理解下面有關工人角色的問題嗎?

  1. 是否有辦法通過GUI啓動或停止Worker角色(就像SSIS或Windows調度程序一樣)?如果不是如何實現這一目標?

  2. 我怎麼知道我的工人角色已經運行或不運行(包括爲什麼它不即運行。日誌)

  3. 如何旋轉基於時間(即(上午9:00至多個工作角色上午11:00旋轉4個角色並在安靜時段縮小)

  4. 以下代碼是否會創建任何有害消息或死鎖(如果有多個消息要處理10,000個消息,並且每隔5秒新線程(Processsing.run)是否啓動?

while(true) 
      { 
       var thread = new Thread(Run); 
        thread.start(); 

       Thread.Sleep(5000); 
       Trace.WriteLine("Working", "Information"); 
      } 


public class PhotoProcessing 
    { 
     public static void Run() 
     { 
      // Read from queue 
      CloudQueueMessage msg = 

Storage.Queue.GetNextMessage();

  while(msg != null) 
      { 
       string[] message = msg.AsString.Split('$'); 
       if(message.Length == 2) 
       { 
        AddWatermark(message[0], message[1]); 
       }     

       // Message has been read so remove it 
       Storage.Queue.DeleteMessage(msg); 

       // Get next message if any 
       msg = Storage.Queue.GetNextMessage(); 
      } 
     } 

回答

3

有沒有辦法來啓動或停止輔助角色(就像SSIS或Windows調度器)通過GUI?如果不是如何實現這一目標?

實際上有很多方法來實現這一點。您可以使用Windows Azure的門戶網站做或者你可以使用第三方工具(如我們的雲存儲室)或者你可以使用Windows Azure的服務管理API(http://msdn.microsoft.com/en-us/library/ee460799.aspx

我怎麼知道我的輔助角色編寫自己的應用程序已經運行或未運行(包括爲什麼它不運行即日誌)

再次,您可以使用基於GUI的工具之一來查看角色的狀態。至於爲什麼角色都沒有運行,則需要啓用Windows Azure診斷在你的Worker角色(http://msdn.microsoft.com/en-us/library/gg433048.aspx

如何旋轉(即(9:00 AM基於時間的多個工作角色的11:00旋轉4個角色並在安靜時段縮小) 您可以使用Windows Azure Service Management API編寫自己的應用程序來完成此任務,也可以使用第三方工具,如Paraleap或Azure管理Cmdlet中的AzureWatch(Microsoft和我們的儘管小命令可以完成工作,但我相信Azure Watch的解決方案要複雜得多,我們寫了一篇關於自動縮放的博客文章,您可以在這裏找到:http://www.cerebrata.com/Blog/post/Scale-your-Windows-Azure-instances-with-Azure-Management-Cmdlets.aspx

+0

Azure可以讓Azure Worker角色自行阻止它。 – user145610

+0

工作者角色具有特定的OnStart/OnStop方法。我沒有在API中看到您指向與這些相關的任何內容。是的,您可以重新啓動角色實例,但想象一下,您只需爲該服務設置遠程調試來調試OnStart/OnStop方法 - 您只需要自己休憩。 –

+0

@DavidBurg不知道我理解你的評論。你能解釋一下嗎? –