Updates are now triggered by events at the Datasets
This commit is contained in:
1 parent
53106e88f4
commit
dbb2722223
4 files changed
+59
-65
No files matched your search
+3
-3
@@ -82,9 +82,9 @@ function newDailyFiles () {
|
||||
|
||||
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
|
||||
if (err.message === 'File does not exist.') {
|
||||
err.message = 'Dataset Unavailable.'
|
||||
callBackFunction(err)
|
||||
return
|
||||
beginDateRange = new Date()
|
||||
endDateRange = new Date()
|
||||
break
|
||||
}
|
||||
if (err.message === 'Missing Configuration.') {
|
||||
if (ERROR_LOG === true) { logger.write('[WARN] initialize -> onFileReceived -> The needed configuration for the dateRange at the dataSet of the product was not found.') }
|
||||
|
||||
+7
-51
@@ -97,72 +97,28 @@ function newFileCursor () {
|
||||
}
|
||||
}
|
||||
|
||||
function updateFiles () {
|
||||
function updateFiles (message) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
|
||||
/*
|
||||
if (message.event === undefined || message.event.lastFile === undefined) { return }
|
||||
|
||||
In order to know if we need to update any file we follow this logic:
|
||||
|
||||
1. If the current date is already a file in the cursor, we need to update it.
|
||||
2. If the current date is one day ahead of a file in the cursor, we need to add this one to the cursor.
|
||||
|
||||
*/
|
||||
|
||||
let targetDate
|
||||
let targetDate = new Date(message.event.lastFile)
|
||||
let dateString
|
||||
let file
|
||||
|
||||
/* Situation 1 */
|
||||
|
||||
targetDate = new Date()
|
||||
dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2)
|
||||
|
||||
file = thisObject.files.get(dateString)
|
||||
|
||||
if (file !== undefined) {
|
||||
fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
/* Situation 2 */
|
||||
|
||||
targetDate = new Date((new Date()).valueOf() - ONE_DAY_IN_MILISECONDS)
|
||||
dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2)
|
||||
|
||||
file = thisObject.files.get(dateString) // This is from yesterday
|
||||
|
||||
targetDate = new Date()
|
||||
dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2)
|
||||
|
||||
if (file !== undefined) {
|
||||
fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived)
|
||||
|
||||
return
|
||||
}
|
||||
fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived)
|
||||
|
||||
function onFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
|
||||
switch (err.result) {
|
||||
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
|
||||
break
|
||||
}
|
||||
|
||||
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
|
||||
return
|
||||
}
|
||||
|
||||
default: {
|
||||
return
|
||||
}
|
||||
if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
||||
thisObject.files.set(dateString, file)
|
||||
thisObject.eventHandler.raiseEvent('Files Updated')
|
||||
}
|
||||
|
||||
thisObject.files.set(dateString, file)
|
||||
thisObject.eventHandler.raiseEvent('Files Updated')
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] updateFiles -> onFileReceived -> err = ' + err.stack) }
|
||||
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
||||
|
||||
+22
-4
@@ -29,18 +29,27 @@ function newFileSequence () {
|
||||
|
||||
thisObject.eventHandler = newEventHandler()
|
||||
|
||||
let intervalHandle
|
||||
let eventSubscriptionIdDatasetUpdated
|
||||
|
||||
return thisObject
|
||||
|
||||
function finalize () {
|
||||
try {
|
||||
clearInterval(intervalHandle)
|
||||
systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated)
|
||||
|
||||
thisObject.eventHandler.finalize()
|
||||
thisObject.eventHandler = undefined
|
||||
|
||||
filesLoaded = undefined
|
||||
fileCloud = undefined
|
||||
files = undefined
|
||||
maxSequence = undefined
|
||||
market = undefined
|
||||
devTeam = undefined
|
||||
bot = undefined
|
||||
thisSet = undefined
|
||||
product = undefined
|
||||
|
||||
finalized = true
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] finalize -> err = ' + err.stack) }
|
||||
@@ -55,8 +64,6 @@ function newFileSequence () {
|
||||
throw 'Exchange not supoorted by this pProduct of the ecosystem! - pDevTeam.codeName = ' + pDevTeam.codeName + ', pBot.codeName = ' + pBot.codeName + ', pProduct.codeName = ' + pProduct.codeName + ', pExchange = ' + pExchange
|
||||
}
|
||||
|
||||
intervalHandle = setInterval(updateFiles, _1_MINUTE_IN_MILISECONDS)
|
||||
|
||||
market = pMarket
|
||||
devTeam = pDevTeam
|
||||
bot = pBot
|
||||
@@ -66,12 +73,20 @@ function newFileSequence () {
|
||||
fileCloud = newFileCloud()
|
||||
fileCloud.initialize(bot)
|
||||
|
||||
let key = devTeam.codeName + '-' + bot.codeName + '-' + product.codeName + '-' + thisSet.codeName
|
||||
systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key, onResponse, updateFiles)
|
||||
|
||||
function onResponse (message) {
|
||||
eventSubscriptionIdDatasetUpdated = message.eventSubscriptionId
|
||||
}
|
||||
|
||||
/* First we will get the sequence max number */
|
||||
|
||||
fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, 'Sequence', undefined, onSequenceFileReceived)
|
||||
|
||||
function onSequenceFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
initialized = true
|
||||
|
||||
switch (err.result) {
|
||||
@@ -113,6 +128,7 @@ function newFileSequence () {
|
||||
|
||||
function onFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
switch (err.result) {
|
||||
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
|
||||
break
|
||||
@@ -179,6 +195,7 @@ function newFileSequence () {
|
||||
|
||||
function onSequenceFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
switch (err.result) {
|
||||
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
|
||||
break
|
||||
@@ -213,6 +230,7 @@ function newFileSequence () {
|
||||
|
||||
function onFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
switch (err.result) {
|
||||
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
|
||||
break
|
||||
|
||||
+27
-7
@@ -27,6 +27,7 @@ function newMarketFiles () {
|
||||
let devTeam
|
||||
let bot
|
||||
let thisSet
|
||||
let product
|
||||
let periodName
|
||||
|
||||
thisObject.eventHandler = newEventHandler()
|
||||
@@ -34,18 +35,29 @@ function newMarketFiles () {
|
||||
let intervalHandle
|
||||
let finalized = false
|
||||
|
||||
let eventSubscriptionIdDatasetUpdated
|
||||
|
||||
return thisObject
|
||||
|
||||
function finalize () {
|
||||
try {
|
||||
clearInterval(intervalHandle)
|
||||
|
||||
filesLoaded = undefined
|
||||
files = undefined
|
||||
finalized = true
|
||||
systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated)
|
||||
|
||||
thisObject.eventHandler.finalize()
|
||||
thisObject.eventHandler = undefined
|
||||
|
||||
filesLoaded = undefined
|
||||
files = undefined
|
||||
|
||||
market = undefined
|
||||
exchange = undefined
|
||||
devTeam = undefined
|
||||
bot = undefined
|
||||
thisSet = undefined
|
||||
product = undefined
|
||||
periodName = undefined
|
||||
|
||||
finalized = true
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] finalize -> err = ' + err.stack) }
|
||||
}
|
||||
@@ -59,12 +71,11 @@ function newMarketFiles () {
|
||||
throw 'Exchange not supoorted by this pProduct of the ecosystem! - pDevTeam.codeName = ' + pDevTeam.codeName + ', pBot.codeName = ' + pBot.codeName + ', pProduct.codeName = ' + pProduct.codeName + ', pExchange = ' + pExchange
|
||||
}
|
||||
|
||||
intervalHandle = setInterval(updateFiles, _10_MINUTES_IN_MILISECONDS)
|
||||
|
||||
market = pMarket
|
||||
devTeam = pDevTeam
|
||||
bot = pBot
|
||||
thisSet = pSet
|
||||
product = pProduct
|
||||
|
||||
fileCloud = newFileCloud()
|
||||
fileCloud.initialize(pBot)
|
||||
@@ -80,6 +91,7 @@ function newMarketFiles () {
|
||||
|
||||
function onFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
||||
files.set(periodTime, file)
|
||||
filesLoaded++
|
||||
@@ -88,7 +100,14 @@ function newMarketFiles () {
|
||||
}
|
||||
|
||||
if (filesLoaded + filesNotLoaded === marketFilesPeriods.length) {
|
||||
let key = devTeam.codeName + '-' + bot.codeName + '-' + product.codeName + '-' + thisSet.codeName
|
||||
systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponse, updateFiles)
|
||||
|
||||
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, thisObject)
|
||||
|
||||
function onResponse (message) {
|
||||
eventSubscriptionIdDatasetUpdated = message.eventSubscriptionId
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onFileReceived -> err = ' + err.stack) }
|
||||
@@ -119,6 +138,7 @@ function newMarketFiles () {
|
||||
|
||||
function onFileReceived (err, file) {
|
||||
try {
|
||||
if (finalized === true) { return }
|
||||
files.set(periodTime, file)
|
||||
updatedFiles++
|
||||
|
||||
|
||||
Reference in new issue
Block a user