0

我有一个在 Azure 中作为辅助角色运行的 node.js 服务。默认情况下,每次拓扑发生更改时都会重新启动该过程,例如通过 Azure 门户增加实例计数。如何防止重新启动?

MSDN 文档指出处理 Azure 的“更改”事件。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 回答