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

时间:2013-10-25 20:31:24

标签: node.js azure

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

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

使用API​​的代码类似于

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

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

1 个答案:

答案 0 :(得分:0)

在取消事件时在.NET中使用角色更改事件时,实际上是要求系统重新启动。 Role Changing event on MSDN的文档说明了这一点:

  

通过使用Cancel属性,您可以确保该实例   继续按顺序关闭序列并脱机   在应用配置更改之前。在关机期间   进程,Windows Azure引发Stopping事件,然后运行任何事件   OnStop方法中的代码。

角色更改事件的想法是,如果您可以在运行时修改配置而无需重新启动,则可以执行此操作。通过取消更改事件,您实质上是在说:“我无法在运行时更改此设置,因此请正常重新启动并接收新的更改。”

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