Session Running and Stopping from menu and at task server

This commit is contained in:
Luis Fernando Molina committed 2019-10-03 22:07:23 +02:00
1 parent 6875cc2bc0
commit e84da7e5c6
3 files changed
+38 -22

No files matched your search

+3 -3
View File
@@ -465,7 +465,7 @@
const logText = "User Defined End Datetime reached @ " + previousDay.getUTCFullYear() + "/" + (previousDay.getUTCMonth() + 1) + "/" + previousDay.getUTCDate() + ".";
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimePeriodsDailyFiles -> advanceTime -> " + logText); }
global.STOP_PROCESSING = true
global.STOP_SESSION = true
callBackFunction(global.DEFAULT_OK_RESPONSE);
return;
@@ -522,7 +522,7 @@
/* Validation that we dont need to stop. */
if (global.STOP_PROCESSING === true) {
if (global.STOP_SESSION === true) {
callBackFunction(global.DEFAULT_OK_RESPONSE);
return;
@@ -907,7 +907,7 @@
const logText = "User Defined End Datetime reached @ " + now.getUTCFullYear() + "/" + (now.getUTCMonth() + 1) + "/" + now.getUTCDate() + ".";
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimePeriodsDailyFiles -> callTheBot -> onBotFinished -> onMarketStatusReport -> " + logText); }
global.STOP_PROCESSING = true
global.STOP_SESSION = true
callBackFunction(global.DEFAULT_OK_RESPONSE);
return;
+34 -18
View File
@@ -99,14 +99,13 @@
/* Some initial values*/
bot.enableCheckLoopHealth = true;
let fixedTimeLoopIntervalHandle;
global.STOP_PROCESSING = true;
global.STOP_SESSION = true;
/* Listen to event to start or stop the session. */
bot.sessionKey = bot.processNode.session.name + '-' + bot.processNode.session.type + '-' + bot.processNode.session.id
let key = 'Session' + '-' + bot.processNode.session.id + '-' + 'Events'
global.SYSTEM_EVENT_HANDLER.listenToEvent(key, 'Run Session', undefined, undefined, undefined, runSession)
global.SYSTEM_EVENT_HANDLER.listenToEvent(key, 'Stop Session', undefined, undefined, undefined, stopSession)
global.SYSTEM_EVENT_HANDLER.listenToEvent(bot.sessionKey, 'Run Session', undefined, undefined, undefined, runSession)
global.SYSTEM_EVENT_HANDLER.listenToEvent(bot.sessionKey, 'Stop Session', undefined, undefined, undefined, stopSession)
function runSession(message) {
switch (bot.processNode.session.type) {
@@ -119,10 +118,12 @@
break
}
}
bot.sessionStatus = 'Idle'
global.STOP_SESSION = false
}
function stopSession(message) {
global.STOP_PROCESSING = true
global.STOP_SESSION = true
}
function startBackTesting(message) {
@@ -132,7 +133,6 @@
bot.startMode = "Backtest"
processConfig.framework.startDate.resumeExecution = false;
global.STOP_PROCESSING = false
bot.hasTheBotJustStarted = true
setValuesToUse(message)
@@ -207,7 +207,6 @@
processConfig.framework.startDate.fixedDate = new Date()
processConfig.framework.startDate.resumeExecution = false;
bot.multiPeriodDailyProcessDatetime = processConfig.framework.startDate.fixedDate
global.STOP_PROCESSING = false
bot.hasTheBotJustStarted = true
setValuesToUse(message)
}
@@ -312,9 +311,9 @@
let nextWaitTime;
/* Loop Heartbeat sent to the UI */
bot.hearBeat = hearBeat // allow the bot itself to produce a heartbeat
hearBeat()
/* Heartbeats sent to the UI */
bot.sessionHeartBeat = sessionHeartBeat
processHeartBeat()
/* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */
@@ -336,15 +335,26 @@
console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30)
+ " Entered into Main Loop # " + pad(Number(bot.loopCounter), 8));
/* Checking if we need to need to emit any event */
if (bot.sessionStatus === 'Idle' && global.STOP_SESSION === false) {
global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.sessionKey, 'Running')
bot.sessionStatus = 'Running'
}
if (bot.sessionStatus === 'Running' && global.STOP_SESSION === true) {
global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.sessionKey, 'Stopped')
bot.sessionStatus = 'Stopped'
}
/* Checking if we should process this loop or not.*/
if (global.STOP_PROCESSING === true) {
if (global.STOP_SESSION === true) {
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> Waiting for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be started."); }
console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30)
+ " Waiting for " + bot.processNode.session.type + " " + bot.processNode.session.name + " to be started. ");
global.SYSTEM_EVENT_HANDLER.raiseEvent('Jason-Multi-Period', 'Process Stopped')
nextWaitTime = 'Normal';
loopControl(nextWaitTime);
return
@@ -1077,7 +1087,7 @@
/* We show we reached the end of the loop. */
hearBeat()
processHeartBeat()
/* Here we check if we must stop the loop gracefully. */
@@ -1093,8 +1103,7 @@
logger.persist();
}
global.SYSTEM_EVENT_HANDLER.raiseEvent('Jason-Multi-Period', 'Process Stopped')
global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.sessionKey, 'Stopped')
callBackFunction(global.DEFAULT_OK_RESPONSE);
return;
@@ -1215,7 +1224,7 @@
}
}
function hearBeat() {
function processHeartBeat() {
let key = global.TASK_NODE.bot.processes[bot.processIndex].name + '-' + global.TASK_NODE.bot.processes[bot.processIndex].type + '-' + global.TASK_NODE.bot.processes[bot.processIndex].id
let event = {
@@ -1224,6 +1233,13 @@
global.SYSTEM_EVENT_HANDLER.raiseEvent(key, 'Heartbeat', event)
}
function sessionHeartBeat() {
let event = {
seconds: (new Date()).getSeconds()
}
global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.sessionKey, 'Heartbeat', event)
}
} catch (err) {
parentLogger.write(MODULE_NAME, "[ERROR] run -> err = "+ err.stack);
clearInterval(fixedTimeLoopIntervalHandle);
+1 -1
View File
@@ -106,7 +106,7 @@ process.on('message', message => {
if (message === 'Stop this Task') {
global.STOP_TASK_GRACEFULLY = true;
global.STOP_PROCESSING = true
global.STOP_SESSION = true
/*
There are some process that might no be able to end grafully, for example the ones schedulle to process information in a future day or month.