Как Azure проверяет статус WorkerRole? - PullRequest
6 голосов
/ 21 марта 2011

Я вижу, как Azure периодически проверяет состояние моей рабочей роли, но как?

В RoleEntryPoint нет способа сделать это, и я смотрю на Microsoft.WindowsAzure.ServiceRuntime.занятия с ILSpy, но я не вижу ничего уместного.

Есть идеи?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 21 марта 2011

Вот сообщение в блоге , в котором описывается, как контроллер Windows Azure Fabric контролирует состояние экземпляра.

Кроме того, контроллер вызывает событие StatusCheck каждые 15 секунд, которое вы можете обработать. Если вы хотите вытащить себя из балансировщика нагрузки (возможно, основываясь на некоторых внутренних данных вашего экземпляра), вы просто вызываете SetBusy () для объекта RoleEnvironmentStatusCheckEventArgs. Это выведет вас из балансировщика нагрузки до следующей проверки.

4 голосов
/ 21 марта 2011

Я думаю, что механизм такой же, как и для WebRoles

, Azure RoleEnvironment выполняет проверку состояния - см. http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.statuscheck.aspx

Если вы хотите сообщить службе, что вы заняты, товызвать SetBusy (), когда это событие срабатывает

...