节点 js 应用程序关闭时无法注销尤里卡

Not able to deregister eureka when node js app shutdown

我正在使用 eureka-js-client 来抵抗带有 eureka 发现服务器的节点 js 应用程序。它工作正常。但是当节点 js 服务关闭时,它不会注销发现,并且在服务关闭后仍然显示为可用实例。

这是我注销的方式:

process.on('exit', function() {
  eurekaClient.stop() ;
});

我为节点 js 应用程序使用了 exitHandelr,并在其中从 eureka 发现服务注销。

process.stdin.resume();

function exitHandler(options, exitCode) {
    if (options.cleanup) console.log('clean');
    if (exitCode || exitCode === 0) console.log(exitCode);
    if (options.exit) {
        eurekaClient.stop(function (error) {
            process.exit();
        });
    }
}

//do something when app is closing
process.on('exit', exitHandler.bind(null, {cleanup: true}));

//catches ctrl+c event
process.on('SIGINT', exitHandler.bind(null, {exit: true}));

// catches "kill pid" (for example: nodemon restart)
process.on('SIGUSR1', exitHandler.bind(null, {exit: true}));
process.on('SIGUSR2', exitHandler.bind(null, {exit: true}));

//catches uncaught exceptions
process.on('uncaughtException', exitHandler.bind(null, {exit: true}));