我有一个在Azure中作为辅助角色运行的node.js服务。默认情况下,每次发生拓扑更改时都会重新启动进程,例如,实例计数通过Azure门户增加。如何防止重启?
MSDN文档指向处理Azure的“更改”事件。 Azure Node SDK对取消的支持已添加here和here。
使用API的代码类似于
azure.RoleEnvironment.on(ServiceRuntimeConstants.CHANGING, function (changes) {
changes.cancel();
});
从日志我知道处理程序被调用,但之后仍然重新启动。我是否错误地使用了API,或者这是错误的做法?
答案 0 :(得分:0)
在取消事件时在.NET中使用角色更改事件时,实际上是要求系统重新启动。 Role Changing event on MSDN的文档说明了这一点:
通过使用Cancel属性,您可以确保该实例 继续按顺序关闭序列并脱机 在应用配置更改之前。在关机期间 进程,Windows Azure引发Stopping事件,然后运行任何事件 OnStop方法中的代码。
角色更改事件的想法是,如果您可以在运行时修改配置而无需重新启动,则可以执行此操作。通过取消更改事件,您实质上是在说:“我无法在运行时更改此设置,因此请正常重新启动并接收新的更改。”
我没有尝试使用Node,但尝试不取消它。