thingsboard-memoizeit
Changes
msa/js-executor/.gitignore 1(+1 -0)
msa/js-executor/api/jsMessageConsumer.js 31(+30 -1)
msa/js-executor/package.json 8(+5 -3)
msa/js-executor/server.js 3(+2 -1)
Details
msa/js-executor/.gitignore 1(+1 -0)
diff --git a/msa/js-executor/.gitignore b/msa/js-executor/.gitignore
index c5cfd3d..19c6dc9 100644
--- a/msa/js-executor/.gitignore
+++ b/msa/js-executor/.gitignore
@@ -29,3 +29,4 @@ pom.xml.versionsBackup
**/.env
node_modules
package-lock.json
+api/jsinvoke.js
msa/js-executor/api/jsMessageConsumer.js 31(+30 -1)
diff --git a/msa/js-executor/api/jsMessageConsumer.js b/msa/js-executor/api/jsMessageConsumer.js
index 43d3c78..774a205 100644
--- a/msa/js-executor/api/jsMessageConsumer.js
+++ b/msa/js-executor/api/jsMessageConsumer.js
@@ -18,8 +18,37 @@
var logger = require('../config/logger')('JsMessageConsumer');
+var js = require('./jsinvoke').js;
+
+
exports.onJsInvokeMessage = function(message, producer) {
- logger.info('Received message: %s', message);
+ logger.info('Received message: %s', JSON.stringify(message));
+
+ var request = js.RemoteJsRequest.decode(message.value);
+
+ logger.info('Received request: %s', JSON.stringify(request));
+
+ if (request.compileRequest) {
+ var compileResponse = js.JsCompileResponse.create(
+ {
+ errorCode: js.JsInvokeErrorCode.COMPILATION_ERROR,
+ success: false,
+ errorDetails: 'Not Implemented!',
+ scriptIdLSB: request.compileRequest.scriptIdLSB,
+ scriptIdMSB: request.compileRequest.scriptIdMSB
+ }
+ );
+ var response = js.RemoteJsResponse.create(
+ {
+ compileResponse: compileResponse
+ }
+ );
+ var rawResponse = js.RemoteJsResponse.encode(response).finish();
+ sendMessage(producer, rawResponse);
+ }
+}
+
+function sendMessage(producer, rawMessage) {
}
msa/js-executor/package.json 8(+5 -3)
diff --git a/msa/js-executor/package.json b/msa/js-executor/package.json
index 870986a..489682e 100644
--- a/msa/js-executor/package.json
+++ b/msa/js-executor/package.json
@@ -6,15 +6,17 @@
"main": "server.js",
"bin": "server.js",
"scripts": {
- "install": "pkg -t node8-linux-x64,node8-win-x64 --out-path ./target . && node install.js",
+ "build-proto": "pbjs -t static-module -w commonjs -o ./api/jsinvoke.js ../../application/src/main/proto/jsinvoke.proto",
+ "install": "npm run build-proto && pkg -t node8-linux-x64,node8-win-x64 --out-path ./target . && node install.js",
"test": "echo \"Error: no test specified\" && exit 1",
- "start": "nodemon server.js",
- "start-prod": "NODE_ENV=production nodemon server.js"
+ "start": "npm run build-proto && nodemon server.js",
+ "start-prod": "npm run build-proto && NODE_ENV=production nodemon server.js"
},
"dependencies": {
"config": "^1.30.0",
"js-yaml": "^3.12.0",
"kafka-node": "^3.0.1",
+ "protobufjs": "^6.8.8",
"winston": "^3.0.0",
"winston-daily-rotate-file": "^3.2.1"
},
msa/js-executor/server.js 3(+2 -1)
diff --git a/msa/js-executor/server.js b/msa/js-executor/server.js
index 2a3b24f..b8ebec3 100644
--- a/msa/js-executor/server.js
+++ b/msa/js-executor/server.js
@@ -41,7 +41,8 @@ var kafkaClient;
{ topic: kafkaRequestTopic, partition: 0 }
],
{
- autoCommit: true
+ autoCommit: true,
+ encoding: 'buffer'
}
);