2011-07-11 9 views
5

Windows Azureオペレーティングシステムは、実行中のワーカーロールを自動的に再起動またはリセットしますか?または、Run()メソッドにループがある場合、私のWorkerロールが無限に実行されているという事実に頼ることはできますか?Azure Workerroleライフサイクル

答えて

3

月単位でゲストOSが更新されるため、ロールインスタンス(ワーカーまたはWebのいずれであっても)は少なくとも月1回リサイクルされます。ホストOSは、四半期ごとにリフレッシュされ、追加のロールリサイクルが発生する可能性があります(ホストとゲストのアップデートが別々に実行されていると仮定します)。

ゲストOSのバージョンを指定することで、最新のゲストOSに自動更新されないようにすることができます。ホストOSのアップデートをオプトアウトすることはできません。

一般に、ではなく、は無限に実行されているロールインスタンスに依存する必要があります。あなたはあなたの将来の再起動があると仮定する必要があります。ホストOSのアップデートとは別に、ハードウェアの障害が発生する可能性があります。

ゲストOSアップデートの詳細についてはhere、ホストOSアップデートの場合はhereを参照してください。

1

連続して実行されているホストマシンに依存することはできません。何らかの理由でクラッシュする可能性があります。したがって、コードは定期的にチェックポイントを認識して設定し、再開できるようにする必要があります。

したがって、while(true) doStuff()ループを使用できますが、グローバルストレージ(SQL Azure、BLOB、キュー、テーブル)に影響を与える操作によって、そのストレージは常に一貫した状態になるようにコードを設計する必要があります。このようにすると、ループが中断される(クラッシュや、実行中のスレッドを中止するための例外によって)コードを再開すると、コードを再開することができます。

関連する問題