From 914217058b2e8e5a0e31001f9989ae84af8de4ee Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 19 Dec 2024 11:52:27 -0800 Subject: [PATCH] use to resolve concurrency issue --- Server/db/mongo/modules/hardwareCheckModule.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Server/db/mongo/modules/hardwareCheckModule.js b/Server/db/mongo/modules/hardwareCheckModule.js index 9c49e831b..4d2e50be3 100644 --- a/Server/db/mongo/modules/hardwareCheckModule.js +++ b/Server/db/mongo/modules/hardwareCheckModule.js @@ -19,18 +19,25 @@ const createHardwareCheck = async (hardwareCheckData) => { return null; } + let newUptimePercentage; if (monitor.uptimePercentage === undefined) { - monitor.uptimePercentage = status === true ? 1 : 0; + newUptimePercentage = status === true ? 1 : 0; } else { - monitor.uptimePercentage = + newUptimePercentage = (monitor.uptimePercentage * (n - 1) + (status === true ? 1 : 0)) / n; } - await monitor.save(); + + await Monitor.findOneAndUpdate( + { _id: monitorId }, + { uptimePercentage: newUptimePercentage } + ); + const hardwareCheck = await new HardwareCheck({ ...hardwareCheckData, }).save(); return hardwareCheck; } catch (error) { + console.log("error creating hardware check", error); error.service = SERVICE_NAME; error.method = "createHardwareCheck"; throw error;