@5minds/node-red-contrib-processcube
Advanced tools
Comparing version 1.8.1-develop-6dff8c-m73e1huc to 1.8.2-develop-44f737-m79z7jh3
@@ -432,3 +432,3 @@ { | ||
"name": "@5minds/node-red-contrib-processcube", | ||
"version": "1.8.1", | ||
"version": "1.8.2", | ||
"local": false, | ||
@@ -435,0 +435,0 @@ "user": false, |
@@ -26,3 +26,3 @@ { | ||
"menu-menu-item-sidebar": true, | ||
"menu-menu-item-palette": true, | ||
"menu-menu-item-palette": false, | ||
"do": { | ||
@@ -29,0 +29,0 @@ "markNodes": true |
@@ -14,2 +14,6 @@ const EventEmitter = require('node:events'); | ||
node.eventEmitter = new EventEmitter(); | ||
let options = RED.util.evaluateNodeProperty(config.workerConfig, config.workerConfigType, node); | ||
let topic = node.topic = RED.util.evaluateNodeProperty(config.topic, config.topicType, node) | ||
@@ -29,3 +33,4 @@ node._subscribed = true; | ||
this.error(`subscription failed (${error}).`); | ||
this.error(`subscription failed (topic: ${node.topic}).`); | ||
RED.log.error(`topic: ${node.topic} (${error.message}).`); | ||
@@ -37,2 +42,3 @@ this.showStatus(); | ||
this._subscribed = true; | ||
this._subscribed_error = null; | ||
this.started_external_tasks[externalTask.flowNodeInstanceId] = externalTask; | ||
@@ -48,5 +54,20 @@ | ||
this._subscribed = true; | ||
this._subscribed_error = null; | ||
this.showStatus(); | ||
}; | ||
node.setErrorFinishHandlingTaskStatus = (externalTask, error) => { | ||
if (externalTask.flowNodeInstanceId) { | ||
delete this.started_external_tasks[externalTask.flowNodeInstanceId]; | ||
} | ||
this._subscribed_error = error; | ||
this.error(`finished task failed (topic: ${node.topic}).`); | ||
RED.log.error(`topic: ${node.topic} (${error.message}).`); | ||
this.showStatus(); | ||
}; | ||
node.showStatus = () => { | ||
@@ -56,3 +77,3 @@ const msgCounter = Object.keys(this.started_external_tasks).length; | ||
if (this._subscribed === false) { | ||
this.status({ fill: 'red', shape: 'ring', text: `subscription failed.` }) | ||
this.status({ fill: 'red', shape: 'ring', text: `subscription failed (${msgCounter}).` }) | ||
} else { | ||
@@ -64,6 +85,2 @@ if (msgCounter >= 1) { | ||
this.status({ fill: 'blue', shape: 'ring', text: `subcribed.` }); | ||
if (process.env.NODE_RED_ETW_HEARTBEAT_LOGGING) { | ||
this.log(`subcribed (heartbeat).`); | ||
} | ||
} | ||
@@ -82,2 +99,3 @@ } | ||
} | ||
const client = node.engine.engineClient; | ||
@@ -90,7 +108,10 @@ | ||
const etwCallback = async (payload, externalTask) => { | ||
const saveHandleCallback = (data, callback) => { | ||
const saveHandleCallback = (data, callback, msg) => { | ||
try { | ||
callback(data); | ||
node.setFinishHandlingTaskStatus(externalTask); | ||
} catch (error) { | ||
node.error(`Error in callback 'saveHandleCallback': ${error.message}`, {}); | ||
node.setErrorFinishHandlingTaskStatus(externalTask, error); | ||
msg.error = error; | ||
node.error(`Error in callback 'saveHandleCallback': ${error.message}`, msg); | ||
} | ||
@@ -111,6 +132,4 @@ }; | ||
node.setFinishHandlingTaskStatus(externalTask); | ||
//resolve(result); | ||
saveHandleCallback(result, resolve); | ||
saveHandleCallback(result, resolve, msg); | ||
}; | ||
@@ -123,4 +142,2 @@ | ||
node.setFinishHandlingTaskStatus(externalTask); | ||
// TODO: with reject, the default error handling is proceed | ||
@@ -130,3 +147,3 @@ // SEE: https://github.com/5minds/ProcessCube.Engine.Client.ts/blob/develop/src/ExternalTaskWorker.ts#L180 | ||
//resolve(msg); | ||
saveHandleCallback(msg, resolve); | ||
saveHandleCallback(msg, resolve, msg); | ||
}; | ||
@@ -165,5 +182,2 @@ | ||
let options = RED.util.evaluateNodeProperty(config.workerConfig, config.workerConfigType, node); | ||
let topic = RED.util.evaluateNodeProperty(config.topic, config.topicType, node) | ||
client.externalTasks | ||
@@ -176,4 +190,12 @@ .subscribeToExternalTaskTopic(topic, etwCallback, options) | ||
externalTaskWorker.onHeartbeat(() => { | ||
externalTaskWorker.onHeartbeat((event, external_task_id) => { | ||
node.setSubscribedStatus(); | ||
if (process.env.NODE_RED_ETW_HEARTBEAT_LOGGING) { | ||
if (external_task_id) { | ||
this.log(`subscription (heartbeat:topic ${node.topic}, ${event} for ${external_task_id}).`); | ||
} else { | ||
this.log(`subscription (heartbeat:topic ${node.topic}, ${event}).`); | ||
} | ||
} | ||
}); | ||
@@ -187,11 +209,11 @@ | ||
node.error( | ||
`Worker error ${errorType} for *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* '${externalTask.processInstanceId}': ${error.message}`, | ||
{} | ||
`Worker error ${errorType} for *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* '${externalTask.processInstanceId}': ${error.message}` | ||
); | ||
if (externalTask) { | ||
delete node.started_external_tasks[externalTask.flowNodeInstanceId]; | ||
} | ||
//if (externalTask) { | ||
// delete node.started_external_tasks[externalTask.flowNodeInstanceId]; | ||
//} | ||
showStatus(node, Object.keys(node.started_external_tasks).length); | ||
node.setUnsubscribedStatus(error); | ||
break; | ||
@@ -198,0 +220,0 @@ case 'fetchAndLock': |
{ | ||
"name": "@5minds/node-red-contrib-processcube", | ||
"version": "1.8.1-develop-6dff8c-m73e1huc", | ||
"version": "1.8.2-develop-44f737-m79z7jh3", | ||
"license": "MIT", | ||
@@ -62,3 +62,3 @@ "description": "Node-RED nodes for ProcessCube", | ||
"dependencies": { | ||
"@5minds/processcube_engine_client": "5.1.8", | ||
"@5minds/processcube_engine_client": "5.1.10-hotfix-a83819-m79hiutk", | ||
"jwt-decode": "^4.0.0", | ||
@@ -65,0 +65,0 @@ "openid-client": "^5.5.0" |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
798429
16957
+ Added@5minds/processcube_engine_client@5.1.10-hotfix-a83819-m79hiutk(transitive)
+ Addedjose@6.0.7(transitive)
+ Addedoidc-token-hash@5.1.0(transitive)
+ Addedopenid-client@6.3.3(transitive)
- Removed@5minds/processcube_engine_client@5.1.8(transitive)
- Removedjose@5.10.0(transitive)
- Removedoidc-token-hash@5.0.3(transitive)
- Removedopenid-client@6.3.0(transitive)
Updated@5minds/processcube_engine_client@5.1.10-hotfix-a83819-m79hiutk