From cd061e355e3a7864d49d4981fb9c30f6ef1f511f Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 12 Apr 2020 11:07:17 +0200 Subject: [PATCH] Bug fixed saving status report for the first time --- CanvasApp/Plotter.js | 4 + .../Historic-OHLCVs/User.Bot.js | 5 + TaskServer/FileStorage.js | 111 ++++++++++-------- 3 files changed, 68 insertions(+), 52 deletions(-) diff --git a/CanvasApp/Plotter.js b/CanvasApp/Plotter.js index fdd1cce45..dbe40a887 100644 --- a/CanvasApp/Plotter.js +++ b/CanvasApp/Plotter.js @@ -202,6 +202,8 @@ function newPlotter () { if (newMarketFile !== undefined) { marketFile = newMarketFile recalculate() + } else { + logger.write('[WARN] setTimeFrame -> Could not change to market file for timeFrame = ' + pTimeFrame } } else { let newFileCursor = dailyFiles.getFileCursor(pTimeFrame) @@ -209,6 +211,8 @@ function newPlotter () { if (newFileCursor !== undefined) { fileCursor = newFileCursor recalculate() + } else { + logger.write('[WARN] setTimeFrame -> Could not change to market file for timeFrame = ' + pTimeFrame } } } diff --git a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js index eb3061ecc..9bdde8bc2 100644 --- a/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js @@ -354,6 +354,11 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_S return } + if (err.stack.toString().indexOf('ExchangeNotAvailable') >= 0) { + logger.write(MODULE_NAME, "[ERROR] start -> getOHLCVs -> Retrying Later -> The Exchange " + bot.exchange + " is not responding at the moment. I will save the data already fetched and try to reconnect later to fetch the rest of the missing data."); + return + } + logger.write(MODULE_NAME, "[ERROR] start -> getOHLCVs -> Retrying Later -> err = " + err.stack); callBackFunction(global.DEFAULT_RETRY_RESPONSE); abort = true diff --git a/TaskServer/FileStorage.js b/TaskServer/FileStorage.js index 6e95fe028..625c78fd5 100644 --- a/TaskServer/FileStorage.js +++ b/TaskServer/FileStorage.js @@ -71,12 +71,12 @@ exports.newFileStorage = function newFileStorage(logger) { } callBackFunction(customResponse) return - } else { - fileDoesNotExist = true - logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> File does not exist. Retrying. ') - setTimeout(retry, retryTimeToUse) - return - } + } + + fileDoesNotExist = true + logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> File does not exist. Retrying. ') + setTimeout(retry, retryTimeToUse) + return } logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Error reading file -> err = ' + err.stack) @@ -126,11 +126,12 @@ exports.newFileStorage = function newFileStorage(logger) { logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> canUsePrevious -> Could not read the Previous file either. Giving up.') logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> canUsePrevious -> err = ' + err.stack) callBackFunction(global.DEFAULT_FAIL_RESPONSE) - } else { - /* Returning the previous file */ - callBackFunction(global.DEFAULT_OK_RESPONSE, text.toString()) - return - } + return + } + + /* Returning the previous file */ + callBackFunction(global.DEFAULT_OK_RESPONSE, text.toString()) + return } } else { logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Could read the file, but could not parse it as it is not a valid JSON.') @@ -236,51 +237,25 @@ exports.newFileStorage = function newFileStorage(logger) { logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> file = ' + fileLocation + '.Previous.json') logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> err = ' + err.stack) setTimeout(retry, retryTimeToUse) - } else { + return + } - fs.rename(fileLocation, fileLocation + '.Previous.json', onOriginalRenamed) + /* Rename de Original into Previous */ + fs.rename(fileLocation, fileLocation + '.Previous.json', onOriginalRenamed) - function onOriginalRenamed(err) { - if (err) { - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> Error renaming original file -> file = ' + fileLocation) - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> Error renaming original file -> err = ' + err.stack) - setTimeout(retry, retryTimeToUse) - } else { - - fs.rename(fileLocation + '.tmp', fileLocation, onTempRenamed) - - function onTempRenamed(err) { - if (err) { - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> onTempRenamed -> Error renaming temp file -> file = ' + fileLocation + '.tmp') - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> onTempRenamed -> Error renaming temp file -> err = ' + err.stack) - setTimeout(retry, retryTimeToUse) - } else { - - callBackFunction(global.DEFAULT_OK_RESPONSE) - - } - } - } + function onOriginalRenamed(err) { + let code = '' + if (err) { + code = err.code + } + if (code !== '' && code !== 'ENOENT') { // Unless the file does not exists we do this... + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> Error renaming original file -> file = ' + fileLocation) + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> Error renaming original file -> err = ' + err.stack) + setTimeout(retry, retryTimeToUse) + return } - } - } - } else { - - /* In this case, there is no need to keep a copy of the file being replaced, so we just delete and that's it. */ - - fs.unlink(fileLocation , onUnlinked) - - function onUnlinked(err) { - let code = '' - if (err) { - code = err.code - } - if (code !== '' && code !== 'ENOENT') { - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> file = ' + fileLocation ) - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> err = ' + err.stack) - setTimeout(retry, retryTimeToUse) - } else { + /* Rename de Temp into Original */ fs.rename(fileLocation + '.tmp', fileLocation, onTempRenamed) function onTempRenamed(err) { @@ -293,6 +268,38 @@ exports.newFileStorage = function newFileStorage(logger) { callBackFunction(global.DEFAULT_OK_RESPONSE) } + } + } + } + } else { + + /* In this case, there is no need to keep a copy of the file being replaced, so we just delete and that's it. */ + fs.unlink(fileLocation , onUnlinked) + + function onUnlinked(err) { + let code = '' + if (err) { + code = err.code + } + if (code !== '' && code !== 'ENOENT') { + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> file = ' + fileLocation ) + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error deleting file -> err = ' + err.stack) + setTimeout(retry, retryTimeToUse) + return + } + + /* Rename de Temp into Original */ + fs.rename(fileLocation + '.tmp', fileLocation, onTempRenamed) + + function onTempRenamed(err) { + if (err) { + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> onTempRenamed -> Error renaming temp file -> file = ' + fileLocation + '.tmp') + logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onOriginalRenamed -> onTempRenamed -> Error renaming temp file -> err = ' + err.stack) + setTimeout(retry, retryTimeToUse) + } else { + + callBackFunction(global.DEFAULT_OK_RESPONSE) + } } }