起動タスクが完了するまで、仮想マシンの役割を利用可能にするのを遅らせることはできますか?
マシンを安全にロード バランサーに追加する前に、仮想マシンの起動時に完了しなければならないタスクがいくつかあります。これを行う方法はありますか?
起動タスクが完了するまで、仮想マシンの役割を利用可能にするのを遅らせることはできますか?
マシンを安全にロード バランサーに追加する前に、仮想マシンの起動時に完了しなければならないタスクがいくつかあります。これを行う方法はありますか?
解決策を見つけました。VM Role Startup Windows サービスでは、RoleEnvironment.StatusCheck イベントを処理できます。その後、SetBusy() を呼び出して、インスタンスがロード バランサーで使用可能になるのを防ぐことができます。
private void RoleEnvironmentStatusCheck(object sender, RoleInstanceStatusCheckEventArgs e)
{
if (this.busy)
{
e.SetBusy();
}
statusCheckWaitHandle.Set();
}
taskType
属性をに設定するsimple
と、実際に開始する前に役割がタスクの完了を待機するようになると思います。
<ServiceDefinition name="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebRole1">
<Startup>
<Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
</Task>
</Startup>
</WebRole>
</ServiceDefinition>