Add additional timeouts to the health check
This commit is contained in:
@@ -11,6 +11,9 @@ dotenv.config();
|
|||||||
let currentSystem = undefined;
|
let currentSystem = undefined;
|
||||||
let crashDetectionInterval; // Variable to store the crash detection interval ID
|
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.
|
* 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.
|
* 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 {
|
try {
|
||||||
log.INFO("Checking OP25 web portal health...");
|
log.INFO("Checking OP25 web portal health...");
|
||||||
// Perform an HTTP HEAD request to the web portal with a 5-second timeout
|
// 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.");
|
log.INFO("Web portal is healthy.");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.code === 'ECONNABORTED') {
|
if (error.code === 'ECONNABORTED') {
|
||||||
@@ -40,10 +43,13 @@ const checkServiceHealth = async () => {
|
|||||||
|
|
||||||
// Retry mechanism
|
// Retry mechanism
|
||||||
const retryAttempts = 3;
|
const retryAttempts = 3;
|
||||||
|
const delayBetweenRetries = 3000; // 3 seconds delay
|
||||||
|
|
||||||
for (let i = 1; i <= retryAttempts; i++) {
|
for (let i = 1; i <= retryAttempts; i++) {
|
||||||
log.INFO(`Retrying to check web portal health... Attempt ${i}/${retryAttempts}`);
|
log.INFO(`Retrying to check web portal health... Attempt ${i}/${retryAttempts}`);
|
||||||
try {
|
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.");
|
log.INFO("Web portal is healthy on retry.");
|
||||||
return;
|
return;
|
||||||
} catch (retryError) {
|
} catch (retryError) {
|
||||||
|
|||||||
Reference in New Issue
Block a user