support drain/undrain feature server from cluster

This commit is contained in:
Hoan HL
2025-10-27 14:34:13 +07:00
parent 0869a73052
commit f5fd4ec9b8
4 changed files with 43 additions and 2 deletions

View File

@@ -71,7 +71,7 @@ function installSrfLocals(srf, logger, {
logger.debug('installing srf locals');
assert(!srf.locals.dbHelpers);
const {tracer} = srf.locals.otel;
const {getSBC, lifecycleEmitter} = require('./sbc-pinger')(logger);
const {getSBC, lifecycleEmitter, setDryUpCalls, clearDryUpCalls} = require('./sbc-pinger')(logger);
const StatsCollector = require('@jambonz/stats-collector');
const stats = srf.locals.stats = new StatsCollector(logger);
@@ -285,6 +285,8 @@ function installSrfLocals(srf, logger, {
},
parentLogger: logger,
getSBC,
setDryUpCalls,
clearDryUpCalls,
getSmpp: () => {
return SMPP_URL;
},

View File

@@ -166,9 +166,23 @@ module.exports = (logger) => {
}, 1000);
}
const setDryUpCalls = () => {
logger.info('setting dryUpCalls flag');
dryUpCalls = true;
};
const clearDryUpCalls = () => {
if (lifecycleEmitter.operationalState !== LifeCycleEvents.ScaleIn) {
logger.info('clearing dryUpCalls flag');
dryUpCalls = false;
}
};
return {
lifecycleEmitter,
getSBC: () => sbcs[idxSbc++ % sbcs.length]
getSBC: () => sbcs[idxSbc++ % sbcs.length],
setDryUpCalls,
clearDryUpCalls,
};
};