This commit is contained in:
Xargana 2025-04-08 17:00:51 +03:00
parent db0cb12649
commit 00e7015b30

View file

@ -21,55 +21,25 @@ REMOTE_SERVERS.forEach(server => {
}); });
async function checkServers() { async function checkServers() {
try { for (const server of REMOTE_SERVERS) {
for (const server of REMOTE_SERVERS) { const startTime = Date.now();
try { try {
const res = await ping.promise.probe(server.host, { const res = await ping.promise.probe(server.host);
timeout: 2, // Set a timeout of 2 seconds serversStatus[server.name].online = res.alive;
}); serversStatus[server.name].responseTime = res.time;
serversStatus[server.name].online = res.alive; } catch (error) {
serversStatus[server.name].responseTime = res.time; serversStatus[server.name].online = false;
} catch (error) { serversStatus[server.name].responseTime = null;
console.error(`Error pinging ${server.host}:`, error);
serversStatus[server.name].online = false;
serversStatus[server.name].responseTime = null;
}
serversStatus[server.name].lastChecked = new Date().toISOString();
} }
} catch (error) { serversStatus[server.name].lastChecked = new Date().toISOString();
console.error("Error in checkServers function:", error);
} }
} }
// Initial check with error handling setInterval(checkServers, CHECK_INTERVAL);
try { checkServers();
checkServers();
} catch (error) {
console.error("Error during initial check:", error);
}
// Set interval with error handling
setInterval(() => {
try {
checkServers();
} catch (error) {
console.error("Error during scheduled check:", error);
}
}, CHECK_INTERVAL);
// Route with error handling
router.get("/", (req, res) => { router.get("/", (req, res) => {
try { res.json(serversStatus);
res.json(serversStatus);
} catch (error) {
console.error("Error sending status response:", error);
res.status(500).json({ error: "Internal server error" });
}
}); });
// Add a simple health check endpoint module.exports = router;
router.get("/health", (req, res) => {
res.status(200).send("OK");
});
module.exports = router;