made goldilocks reload config on SIGHUP
This commit is contained in:
parent
528e58969e
commit
a625ee9db9
|
@ -41,15 +41,12 @@ function createStorage(filename, filetype) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function read() {
|
function read() {
|
||||||
return fs.readFileAsync(filename)
|
return fs.readFileAsync(filename).then(parse).catch(function (err) {
|
||||||
.catch(function (err) {
|
if (err.code === 'ENOENT') {
|
||||||
if (err.code === 'ENOENT') {
|
return '';
|
||||||
return '';
|
}
|
||||||
}
|
return PromiseA.reject(err);
|
||||||
return PromiseA.reject(err);
|
});
|
||||||
})
|
|
||||||
.then(parse)
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = {
|
var result = {
|
||||||
|
@ -253,25 +250,29 @@ function run(args) {
|
||||||
var workers = {};
|
var workers = {};
|
||||||
var cachedConfig;
|
var cachedConfig;
|
||||||
|
|
||||||
|
function updateConfig(config) {
|
||||||
|
fillConfig(config, args).then(function (config) {
|
||||||
|
cachedConfig = config;
|
||||||
|
console.log('changed config', config);
|
||||||
|
Object.keys(workers).forEach(function (key) {
|
||||||
|
workers[key].send(cachedConfig);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
process.on('SIGHUP', function () {
|
||||||
|
configStorage.read().then(updateConfig).catch(function (err) {
|
||||||
|
console.error('error updating config after SIGHUP', err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
cluster.on('message', function (worker, message) {
|
cluster.on('message', function (worker, message) {
|
||||||
if (message.type !== 'com.daplie.goldilocks/config') {
|
if (message.type !== 'com.daplie.goldilocks/config') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
configStorage.save(message.changes)
|
configStorage.save(message.changes).then(updateConfig).catch(function (err) {
|
||||||
.then(function (config) {
|
console.error('error changing config', err);
|
||||||
return fillConfig(config, args);
|
});
|
||||||
})
|
|
||||||
.then(function (config) {
|
|
||||||
cachedConfig = config;
|
|
||||||
console.log('changed config', config);
|
|
||||||
Object.keys(workers).forEach(function (key) {
|
|
||||||
workers[key].send(cachedConfig);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch(function (err) {
|
|
||||||
console.error('error changing config', err);
|
|
||||||
})
|
|
||||||
;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
cluster.on('online', function (worker) {
|
cluster.on('online', function (worker) {
|
||||||
|
|
Loading…
Reference in New Issue