stopSignals.forEach(function (signal) { process.on(signal, function () { console.log(`Got ${signal}, stopping workers...`); stopping = true; cluster.disconnect(function () { console.log("All workers stopped, exiting."); process.exit(0); }); }); });
broker.start() .then(async () => { broker.repl(); const nodeCount = Number(process.env.NODE_COUNT); if (nodeCount > 0) await broker.call("nodes.scale", { count: nodeCount }); stopSignals.forEach(signal => { process.on(signal, () => { broker.logger.info(`Got ${signal}, stopping workers...`); stopping = true; cluster.disconnect(() => { broker.logger.info("All workers stopped, exiting."); process.exit(0); }); }); }); await broker.Promise.delay(5000); broker.loadService("./examples/math.service.js"); }) .catch(err => broker.logger.error(err));
logger.info(`Got ${signal}, stopping workers...`); stopping = true; cluster.disconnect(function() { logger.info("All workers stopped, exiting."); process.exit(0);
// Shard requests GAB to shutdown sharder.IPC.on("shutdown", async msg => { if (msg.soft) { if (msg.err) logger.error(`A critical error occurred within a worker, all workers must restart.`); else logger.info(`All workers are being restarted. Expect some lag!`); sharder.shards.forEach(shard => shard.worker.kill()); } else { if (msg.err) logger.error(`A critical error occurred within a worker, the master can no longer operate; GAB is shutting down.`); else logger.info(`GAB is shutting down.`); sharder.shutdown = true; sharder.cluster.disconnect(); process.exit(msg.err ? 1 : 0); } });
const shardFinished = () => { if (sharder.finished > -1) sharder.finished++; if (sharder.finished === sharder.count) { // Print startup ascii message logger.info(`The best Discord Bot, version ${configJSON.version}, is now ready!`); // Use console.log because winston never lets us have anything fun, MOM figlet("GAwesomeBot", (err, res) => { if (err) { logger.error("", {}, err); } else { // eslint-disable-next-line no-console console.log(res); } }); sharder.finished = -1; sharder.IPC.send("postAllData", {}, 0); if (process.argv.includes("--build")) { logger.info("Shutting down travis build with code 0"); sharder.cluster.disconnect(); process.exit(0); } } }
stopSignals.forEach(function (signal) { process.on(signal, function () { console.log(`Got ${signal}, stopping workers...`); stopping = true; cluster.disconnect(function () { console.log("All workers stopped, exiting."); process.exit(0); }); }); });
stopSignals.forEach(function (signal) { process.on(signal, function () { console.log(`Got ${signal}, stopping workers...`); stopping = true; cluster.disconnect(function () { console.log('All workers stopped, exiting.'); process.exit(0); }); }); });