0

Azure でワーカー ロールとして実行されている node.js サービスがあります。既定では、トポロジが変更されるたびにプロセスが再起動されます。たとえば、Azure portal を介してインスタンス数が増加します。この再起動を防ぐにはどうすればよいですか?

MSDN のドキュメントでは、Azure の "Changing" イベントの処理が指摘されています。Azure Node SDK のキャンセルのサポートが追加されました ここここ.

API を使用するコードは次のようになります。

azure.RoleEnvironment.on(ServiceRuntimeConstants.CHANGING, function (changes) {
   changes.cancel();
});

ログから、ハンドラーが呼び出されたことはわかっていますが、その後も再起動が行われました。API を間違って使用していますか、それともアプローチが間違っていますか?

4

1 に答える 1

0

イベントをキャンセルするときに .NET で役割変更イベントを使用すると、実際にはシステムに再起動を求めています。MSDN の役割変更イベントのドキュメントには、次のように書かれています。

Cancel プロパティを使用することで、構成の変更が適用される前にインスタンスが正常なシャットダウン シーケンスを実行し、オフラインになることを確認できます。シャットダウン プロセス中に、Windows Azure は Stopping イベントを発生させ、OnStop メソッドで任意のコードを実行します。

ロール変更イベントの考え方は、実行時に再起動せずに構成を変更できる場合に行うというものです。変更イベントをキャンセルすることで、本質的には「実行時にこれを変更できないため、適切に再起動してから新しい変更を取得してください」と言っているのです。

Nodeでこれを試したことはありませんが、キャンセルしないでください。

于 2013-10-26T03:00:52.863 に答える