diff --git a/src/op25Handler/op25Handler.mjs b/src/op25Handler/op25Handler.mjs index 01a9ebd..09eecbf 100644 --- a/src/op25Handler/op25Handler.mjs +++ b/src/op25Handler/op25Handler.mjs @@ -11,6 +11,9 @@ dotenv.config(); let currentSystem = undefined; let crashDetectionInterval; // Variable to store the crash detection interval ID +// Sleep utility to add delays between retries +const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); + /** * Checks the health of the OP25 web portal by making an HTTP HEAD request. * If the portal does not respond or there is an issue, retries a specified number of times. @@ -25,7 +28,7 @@ const checkServiceHealth = async () => { try { log.INFO("Checking OP25 web portal health..."); // Perform an HTTP HEAD request to the web portal with a 5-second timeout - await axios.head('http://localhost:8081', { timeout: 5000 }); + await axios({ method: "get", url: 'http://localhost:8081', timeout: 5000 }); log.INFO("Web portal is healthy."); } catch (error) { if (error.code === 'ECONNABORTED') { @@ -40,10 +43,13 @@ const checkServiceHealth = async () => { // Retry mechanism const retryAttempts = 3; + const delayBetweenRetries = 3000; // 3 seconds delay + for (let i = 1; i <= retryAttempts; i++) { log.INFO(`Retrying to check web portal health... Attempt ${i}/${retryAttempts}`); try { - await axios.head('http://localhost:8081', { timeout: 5000 }); + await sleep(delayBetweenRetries); // Add delay before retrying + await axios({ method: "get", url: 'http://localhost:8081', timeout: 5000 }); log.INFO("Web portal is healthy on retry."); return; } catch (retryError) {