如何防止node.js进程在Azure拓扑更改时重新启动

如何防止node.js进程在Azure拓扑更改时重新启动,node.js,azure,Node.js,Azure,我有一个node.js服务作为工作者角色在Azure中运行。默认情况下,每次发生拓扑更改时都会重新启动该进程,例如,通过Azure portal增加实例数。如何防止重新启动 MSDN文档指向处理Azure的“更改”事件。Azure Node SDK对取消的支持已添加并删除 使用API的代码如下 azure.RoleEnvironment.on(ServiceRuntimeConstants.CHANGING, function (changes) { changes.cancel(); }

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

MSDN文档指向处理Azure的“更改”事件。Azure Node SDK对取消的支持已添加并删除

使用API的代码如下

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

从日志中我知道调用了处理程序,但之后仍会重新启动。我是否错误地使用了API,或者这是错误的方法?

在.NET中使用角色更改事件时,如果取消该事件,实际上是在请求系统重新启动。该项目的文件如下所示:

通过使用Cancel属性,可以确保实例 按照有序关机顺序进行,并使其脱机 在应用配置更改之前。停堆期间 进程时,Windows Azure引发停止事件,然后运行任何 在OnStop方法中编写代码

角色更改事件的思想是,如果您可以在运行时修改配置,而无需重新启动,则可以这样做。通过取消更改事件,您实际上是在说,“我无法在运行时更改它,所以请优雅地重新启动并选择新的更改。”


我没有尝试过使用Node,但尝试过不取消它。

抱歉,澄清一下,我是从不取消事件的相反方向开始的。这不起作用,所以我开始用相反的方法进行实验。