2011-08-29 87 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不知道我理解你的评论。你能解释一下吗? –