mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-21 17:17:58 +00:00
proper shut down in K8S (#254)
This commit is contained in:
14
app.js
14
app.js
@@ -106,16 +106,28 @@ const disconnect = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
process.on('SIGUSR2', handle);
|
|
||||||
process.on('SIGTERM', handle);
|
process.on('SIGTERM', handle);
|
||||||
|
|
||||||
function handle(signal) {
|
function handle(signal) {
|
||||||
const {removeFromSet} = srf.locals.dbHelpers;
|
const {removeFromSet} = srf.locals.dbHelpers;
|
||||||
|
srf.locals.disabled = true;
|
||||||
|
logger.info(`got signal ${signal}`);
|
||||||
const setName = `${(process.env.JAMBONES_CLUSTER_ID || 'default')}:active-fs`;
|
const setName = `${(process.env.JAMBONES_CLUSTER_ID || 'default')}:active-fs`;
|
||||||
logger.info(`got signal ${signal}, removing ${srf.locals.localSipAddress} from set ${setName}`);
|
logger.info(`got signal ${signal}, removing ${srf.locals.localSipAddress} from set ${setName}`);
|
||||||
removeFromSet(setName, srf.locals.localSipAddress);
|
removeFromSet(setName, srf.locals.localSipAddress);
|
||||||
|
if (setName && srf.locals.localSipAddress) {
|
||||||
|
logger.info(`got signal ${signal}, removing ${srf.locals.localSipAddress} from set ${setName}`);
|
||||||
|
removeFromSet(setName, srf.locals.localSipAddress);
|
||||||
|
}
|
||||||
removeFromSet(FS_UUID_SET_NAME, srf.locals.fsUUID);
|
removeFromSet(FS_UUID_SET_NAME, srf.locals.fsUUID);
|
||||||
srf.locals.disabled = true;
|
srf.locals.disabled = true;
|
||||||
|
if (process.env.K8S) {
|
||||||
|
srf.locals.lifecycleEmitter.operationalState = LifeCycleEvents.ScaleIn;
|
||||||
|
}
|
||||||
|
if (getCount() === 0) {
|
||||||
|
logger.info('no calls in progress, exiting');
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.JAMBONZ_CLEANUP_INTERVAL_MINS) {
|
if (process.env.JAMBONZ_CLEANUP_INTERVAL_MINS) {
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ module.exports = (logger) => {
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
else if (process.env.K8S) {
|
||||||
|
lifecycleEmitter.scaleIn = () => process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
async function pingProxies(srf) {
|
async function pingProxies(srf) {
|
||||||
if (process.env.NODE_ENV === 'test') return;
|
if (process.env.NODE_ENV === 'test') return;
|
||||||
|
|||||||
Reference in New Issue
Block a user