RoleEnvironment.StatusCheck Event

 

Occurs at a regular interval to indicate the status of a role instance.

Namespace:   Microsoft.WindowsAzure.ServiceRuntime
Assembly:  Microsoft.WindowsAzure.ServiceRuntime (in Microsoft.WindowsAzure.ServiceRuntime.dll)

Syntax

public static event EventHandler<RoleInstanceStatusCheckEventArgs> StatusCheck
public:
event EventHandler<RoleInstanceStatusCheckEventArgs^>^ StatusCheck {
    static void add(EventHandler<RoleInstanceStatusCheckEventArgs^>^ value);
    static void remove(EventHandler<RoleInstanceStatusCheckEventArgs^>^ value);
}
static member StatusCheck : IEvent<EventHandler<RoleInstanceStatusCheckEventArgs>,
    RoleInstanceStatusCheckEventArgs>
Public Shared Event StatusCheck As EventHandler(Of RoleInstanceStatusCheckEventArgs)

Remarks

You can use the StatusCheck event to change the status of the role instance. A role instance may indicate that it is in one of two states: Ready or Busy. If the state of a role instance is Ready, it is prepared to receive requests from the load balancer. If the state of the instance is Busy, it will not receive requests from the load balancer. By calling the SetBusy method of RoleInstanceStatusCheckEventArgs, you can temporarily set the status of the role instance to Busy, which removes the role instance from the load balancer.

The following code example shows how to set the status of the role instance to Busy:

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();
   }
}

See Also

RoleEnvironment Class
Microsoft.WindowsAzure.ServiceRuntime Namespace

Return to top