From 82ab3f672f83a51b3f4f47b5c1062d1cd64e4b84 Mon Sep 17 00:00:00 2001 From: TheEssem Date: Mon, 17 May 2021 14:23:29 -0500 Subject: [PATCH] Trying to reduce cannot call write errors --- utils/image.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/utils/image.js b/utils/image.js index 4236a0b..166912d 100644 --- a/utils/image.js +++ b/utils/image.js @@ -93,7 +93,7 @@ exports.connect = (server) => { } }); connection.on("error", (e) => { - logger.error(e); + logger.error(e.toString()); }); connection.once("close", () => { for (const uuid of Object.keys(jobs)) { @@ -129,19 +129,29 @@ const getIdeal = () => { } }, 5000); for (const connection of this.connections) { - if (!connection.remoteAddress) continue; - fetch(`http://${connection.remoteAddress}:8081/status`).then(statusRequest => statusRequest.text()).then(async (status) => { + if (!connection.remoteAddress || connection.destroyed) { + serversLeft--; + continue; + } + fetch(`http://${connection.remoteAddress}:8081/status`).then(statusRequest => statusRequest.text()).then((status) => { serversLeft--; idealServers.push({ addr: connection.remoteAddress, load: parseInt(status) }); + return; + }).then(async () => { if (!serversLeft) { clearTimeout(timeout); const server = await chooseServer(idealServers); resolve(this.connections.find(val => val.remoteAddress === server.addr)); } - return; + }).catch(e => reject(e)); + } + if (!serversLeft) { + clearTimeout(timeout); + chooseServer(idealServers).then(server => { + resolve(this.connections.find(val => val.remoteAddress === server.addr)); }).catch(e => reject(e)); } });