如何以编程方式设置Azure VM角色实例的准备/忙碌?

时间:2012-05-11 11:23:17

标签: azure

有没有办法将vm角色实例的状态从busy更改为ready。 如果有可能,我想用wcf服务这样做。 非常感谢。

1 个答案:

答案 0 :(得分:4)

Fabric Controller将定期检查您的实例的状态,这样一来,您将能够让它知道实例是否繁忙。

您只需处理 StatusCheck 事件并将其设置为忙碌(通过调用 SetBusy 方法)。一旦您确定实例已准备就绪(不再忙),请停止调用 SetBusy 方法。

public override bool OnStart()
{
   RoleEnvironment.StatusCheck += RoleEnvironmentStatusCheck;

   return base.OnStart();
}

// Use the busy object to indicate that the status of the role instance must be Busy
private volatile bool busy = true;

private void RoleEnvironmentStatusCheck(object sender, RoleInstanceStatusCheckEventArgs e)
{
   If (this.busy)
   {
      // Sets the status of the role instance to Busy for a short interval.
      // If you want the role instance to remain busy, add code to 
      // continue to call the SetBusy method
      e.SetBusy();
   }
}

参考:http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.statuscheck.aspx