From 17c56171f3b450e54410b4017990c816533e265c Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Wed, 4 Jul 2018 08:32:19 +0200 Subject: [PATCH] Better control of health care check. --- BlobStorage.js | 4 +-- ExtractionBotProcessMainLoop.js | 33 +++++++++++++++++++++++ IndicatorBotProcessMainLoop.js | 30 +++++++++++++++++++++ TradingBotProcessMainLoop.js | 48 ++++++++++++++++++++++++++++++++- 4 files changed, 112 insertions(+), 3 deletions(-) diff --git a/BlobStorage.js b/BlobStorage.js index e00edd724..ba1c857c8 100644 --- a/BlobStorage.js +++ b/BlobStorage.js @@ -129,8 +129,8 @@ exports.newBlobStorage = function newBlobStorage(BOT, logger) { if (LOG_FILE_CONTENT === true && logger !== undefined) { logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileCreated -> result = " + JSON.stringify(result)); - logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> response = " + JSON.stringify(response)); - logger.write(MODULE_NAME, "[INFO] getTextFile -> onFileReceived -> pFileContent = " + pFileContent); + logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> response = " + JSON.stringify(response)); + logger.write(MODULE_NAME, "[INFO] createTextFile -> onFileReceived -> pFileContent = " + pFileContent); } if (err) { diff --git a/ExtractionBotProcessMainLoop.js b/ExtractionBotProcessMainLoop.js index 02894eaeb..0a571ddc3 100644 --- a/ExtractionBotProcessMainLoop.js +++ b/ExtractionBotProcessMainLoop.js @@ -130,6 +130,8 @@ try { if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] run -> Entering function."); } + let enableCheckLoopHealth = true; + let fixedTimeLoopIntervalHandle; if (bot.runAtFixedInterval === true) { @@ -219,6 +221,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -230,6 +233,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -241,6 +245,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -251,6 +256,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -289,6 +295,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -301,6 +308,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; loopControl(nextWaitTime); return; } @@ -310,6 +318,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; loopControl(nextWaitTime); return; } @@ -319,6 +328,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -332,6 +342,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -343,6 +354,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -353,6 +365,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -390,6 +403,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -414,6 +428,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -423,6 +438,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -432,6 +448,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -441,6 +458,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -454,6 +472,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -465,6 +484,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -475,6 +495,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -497,6 +518,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; @@ -560,6 +582,12 @@ function checkLoopHealth(pLastLoop) { + if (global.CURRENT_EXECUTION_AT !== "Cloud") { + return; + } + + if (enableCheckLoopHealth === false) { return; } // This gets disabled anytime the Main Loop is shut down by any condition. + if (bot.loopCounter <= pLastLoop + 1) { // This means that the next loop started but also stopped executing abruptally. let now = new Date().valueOf(); @@ -621,6 +649,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -663,6 +692,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -676,6 +706,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -686,6 +717,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -696,6 +728,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } diff --git a/IndicatorBotProcessMainLoop.js b/IndicatorBotProcessMainLoop.js index 0f4619156..d8c5dc225 100644 --- a/IndicatorBotProcessMainLoop.js +++ b/IndicatorBotProcessMainLoop.js @@ -132,6 +132,8 @@ if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] run -> Entering function."); } + let enableCheckLoopHealth = true; + let fixedTimeLoopIntervalHandle; if (bot.runAtFixedInterval === true) { @@ -220,6 +222,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -231,6 +234,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -242,6 +246,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -252,6 +257,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -290,6 +296,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -314,6 +321,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -327,6 +335,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -338,6 +347,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -348,6 +358,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -385,6 +396,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -409,6 +421,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -418,6 +431,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -427,6 +441,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -436,6 +451,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -449,6 +465,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -460,6 +477,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -470,6 +488,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -534,6 +553,12 @@ function checkLoopHealth(pLastLoop) { + if (global.CURRENT_EXECUTION_AT !== "Cloud") { + return; + } + + if (enableCheckLoopHealth === false) { return; } // This gets disabled anytime the Main Loop is shut down by any condition. + if (bot.loopCounter <= pLastLoop + 1) { // This means that the next loop started but also stopped executing abruptally. let now = new Date().valueOf(); @@ -595,6 +620,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -637,6 +663,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -650,6 +677,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -660,6 +688,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -670,6 +699,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); } } diff --git a/TradingBotProcessMainLoop.js b/TradingBotProcessMainLoop.js index 2df64f78c..61bf66d6e 100644 --- a/TradingBotProcessMainLoop.js +++ b/TradingBotProcessMainLoop.js @@ -132,6 +132,8 @@ try { if (FULL_LOG === true) { parentLogger.write(MODULE_NAME, "[INFO] run -> Entering function."); } + let enableCheckLoopHealth = true; + let fixedTimeLoopIntervalHandle; if (bot.runAtFixedInterval === true) { @@ -282,6 +284,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -333,6 +336,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; } @@ -347,6 +351,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -405,6 +410,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -416,6 +422,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -427,6 +434,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -437,6 +445,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -475,6 +484,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -486,6 +496,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -497,6 +508,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -507,6 +519,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -544,6 +557,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -555,6 +569,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -566,6 +581,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -576,6 +592,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -614,6 +631,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -625,6 +643,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -636,6 +655,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -646,6 +666,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -683,6 +704,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -694,6 +716,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -705,6 +728,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -715,6 +739,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -753,6 +778,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -764,6 +790,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -775,6 +802,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -785,6 +813,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -821,6 +850,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -832,6 +862,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -843,6 +874,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -853,6 +885,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -884,6 +917,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -893,6 +927,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); return; } @@ -904,6 +939,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -915,6 +951,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -925,6 +962,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -947,6 +985,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_OK_RESPONSE); return; @@ -995,7 +1034,9 @@ return; } - if (bot.startMode === 'Backtest') { return;} + if (bot.startMode === 'Backtest') { return; } + + if (enableCheckLoopHealth === false) { return;} // This gets disabled anytime the Main Loop is shut down by any condition. if (bot.loopCounter <= pLastLoop + 1) { // This means that the next loop started but also stopped executing abruptally. @@ -1058,6 +1099,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -1100,6 +1142,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -1113,6 +1156,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); return; } @@ -1123,6 +1167,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(err); } } @@ -1133,6 +1178,7 @@ clearInterval(fixedTimeLoopIntervalHandle); clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); + enableCheckLoopHealth = false; callBackFunction(global.DEFAULT_FAIL_RESPONSE); } }