From 77b01ccb860c59f1ac10c8784d331440a4ab5a74 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 10 Apr 2020 12:01:45 +0200 Subject: [PATCH] Bug fixed when same listener wants to register twice --- eventsServer.js | 14 +++++++++----- taskManagerServer.js | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/eventsServer.js b/eventsServer.js index cc235cf91..16422175f 100644 --- a/eventsServer.js +++ b/eventsServer.js @@ -183,16 +183,20 @@ function listenToEvent(eventHandlerName, eventType, callerId, handler, extraData) { let eventSubscriptionId = Math.trunc(Math.random() * 1000000) - let found = false + /* + We can not allow to have the exact same listener more than once. In case that we find a listener trying to listen again, the first record will + be deleted and we are just going to consider the last one comming in. + */ for (let i = 0; i < thisObject.listeners.length; i++) { if (eventHandlerName === thisObject.listeners[i][0] && eventType === thisObject.listeners[i][1] && callerId === thisObject.listeners[i][2]) { - found = true + thisObject.listeners.splice(i, 1) + break } } - if (found === false) { - thisObject.listeners.push([eventHandlerName, eventType, callerId, handler, extraData, eventSubscriptionId]) - } + + thisObject.listeners.push([eventHandlerName, eventType, callerId, handler, extraData, eventSubscriptionId]) + return eventSubscriptionId } diff --git a/taskManagerServer.js b/taskManagerServer.js index 72b1d3b24..eb775ee38 100644 --- a/taskManagerServer.js +++ b/taskManagerServer.js @@ -66,7 +66,8 @@ } if (tasks.get(message.event.taskId) !== undefined) { - //console.log('[WARN] BackendServers -> Task Manager Server -> runTask -> Task Already Running -> taskId = ' + message.event.taskId) + let key = message.event.taskName + '-' + 'Task' + '-' + message.event.taskId + eventsServerClient.raiseEvent(key, 'Running') // Meaning Task Running return } //console.log('[INFO] BackendServers -> Task Manager Server -> runTask -> Task Name = ' + message.event.taskName)