make monitor start() and stop() async (#2830)

pull/4561/head^2
Frank Elsinga 9 months ago committed by GitHub
commit 2a3a2201e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -328,9 +328,9 @@ class Monitor extends BeanModel {
/** /**
* Start monitor * Start monitor
* @param {Server} io Socket server instance * @param {Server} io Socket server instance
* @returns {void} * @returns {Promise<void>}
*/ */
start(io) { async start(io) {
let previousBeat = null; let previousBeat = null;
let retries = 0; let retries = 0;
@ -1102,9 +1102,9 @@ class Monitor extends BeanModel {
/** /**
* Stop monitor * Stop monitor
* @returns {void} * @returns {Promise<void>}
*/ */
stop() { async stop() {
clearTimeout(this.heartbeatInterval); clearTimeout(this.heartbeatInterval);
this.isStop = true; this.isStop = true;

@ -986,7 +986,7 @@ let needSetup = false;
log.info("manage", `Delete Monitor: ${monitorID} User ID: ${socket.userID}`); log.info("manage", `Delete Monitor: ${monitorID} User ID: ${socket.userID}`);
if (monitorID in server.monitorList) { if (monitorID in server.monitorList) {
server.monitorList[monitorID].stop(); await server.monitorList[monitorID].stop();
delete server.monitorList[monitorID]; delete server.monitorList[monitorID];
} }
@ -1703,11 +1703,11 @@ async function startMonitor(userID, monitorID) {
]); ]);
if (monitor.id in server.monitorList) { if (monitor.id in server.monitorList) {
server.monitorList[monitor.id].stop(); await server.monitorList[monitor.id].stop();
} }
server.monitorList[monitor.id] = monitor; server.monitorList[monitor.id] = monitor;
monitor.start(io); await monitor.start(io);
} }
/** /**
@ -1737,7 +1737,7 @@ async function pauseMonitor(userID, monitorID) {
]); ]);
if (monitorID in server.monitorList) { if (monitorID in server.monitorList) {
server.monitorList[monitorID].stop(); await server.monitorList[monitorID].stop();
server.monitorList[monitorID].active = 0; server.monitorList[monitorID].active = 0;
} }
} }
@ -1754,7 +1754,7 @@ async function startMonitors() {
} }
for (let monitor of list) { for (let monitor of list) {
monitor.start(io); await monitor.start(io);
// Give some delays, so all monitors won't make request at the same moment when just start the server. // Give some delays, so all monitors won't make request at the same moment when just start the server.
await sleep(getRandomInt(300, 1000)); await sleep(getRandomInt(300, 1000));
} }
@ -1775,7 +1775,7 @@ async function shutdownFunction(signal) {
log.info("server", "Stopping all monitors"); log.info("server", "Stopping all monitors");
for (let id in server.monitorList) { for (let id in server.monitorList) {
let monitor = server.monitorList[id]; let monitor = server.monitorList[id];
monitor.stop(); await monitor.stop();
} }
await sleep(2000); await sleep(2000);
await Database.close(); await Database.close();

Loading…
Cancel
Save