diff --git a/application/src/main/java/org/thingsboard/server/service/script/RemoteJsInvokeService.java b/application/src/main/java/org/thingsboard/server/service/script/RemoteJsInvokeService.java index 8d9f144c8c..7282eedb51 100644 --- a/application/src/main/java/org/thingsboard/server/service/script/RemoteJsInvokeService.java +++ b/application/src/main/java/org/thingsboard/server/service/script/RemoteJsInvokeService.java @@ -46,8 +46,11 @@ import java.util.concurrent.atomic.AtomicInteger; @Service public class RemoteJsInvokeService extends AbstractJsInvokeService { - @Value("${queue.js.max_requests_timeout}") - private long maxRequestsTimeout; + @Value("${queue.js.max_eval_requests_timeout}") + private long maxEvalRequestsTimeout; + + @Value("${queue.js.max_invoke_requests_timeout}") + private long maxInvokeRequestsTimeout; @Getter @Value("${js.remote.max_errors}") @@ -87,7 +90,7 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService { @PostConstruct public void init() { - super.init(maxRequestsTimeout); + super.init(maxInvokeRequestsTimeout); requestTemplate.init(); } @@ -113,8 +116,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService { log.trace("Post compile request for scriptId [{}]", scriptId); ListenableFuture> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper)); - if (maxRequestsTimeout > 0) { - future = Futures.withTimeout(future, maxRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService); + if (maxEvalRequestsTimeout > 0) { + future = Futures.withTimeout(future, maxEvalRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService); } queuePushedMsgs.incrementAndGet(); Futures.addCallback(future, new FutureCallback>() { @@ -155,7 +158,7 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService { .setScriptIdMSB(scriptId.getMostSignificantBits()) .setScriptIdLSB(scriptId.getLeastSignificantBits()) .setFunctionName(functionName) - .setTimeout((int) maxRequestsTimeout) + .setTimeout((int) maxInvokeRequestsTimeout) .setScriptBody(scriptIdToBodysMap.get(scriptId)); for (Object arg : args) { @@ -167,8 +170,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService { .build(); ListenableFuture> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper)); - if (maxRequestsTimeout > 0) { - future = Futures.withTimeout(future, maxRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService); + if (maxInvokeRequestsTimeout > 0) { + future = Futures.withTimeout(future, maxInvokeRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService); } queuePushedMsgs.incrementAndGet(); Futures.addCallback(future, new FutureCallback>() { @@ -210,8 +213,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService { .build(); ListenableFuture> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper)); - if (maxRequestsTimeout > 0) { - future = Futures.withTimeout(future, maxRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService); + if (maxInvokeRequestsTimeout > 0) { + future = Futures.withTimeout(future, maxInvokeRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService); } JsInvokeProtos.RemoteJsResponse response = future.get().getValue(); diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index ec9ca29468..7b765906cd 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -669,7 +669,9 @@ queue: # JS Eval max pending requests max_pending_requests: "${REMOTE_JS_MAX_PENDING_REQUESTS:10000}" # JS Eval max request timeout - max_requests_timeout: "${REMOTE_JS_MAX_REQUEST_TIMEOUT:10000}" + max_eval_requests_timeout: "${REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT:60000}" + # JS Invoke max request timeout + max_invoke_requests_timeout: "${REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT:10000}" # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" # JS response auto commit interval diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java b/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java index cd492e87f1..da880c55b4 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/settings/TbQueueRemoteJsInvokeSettings.java @@ -37,6 +37,6 @@ public class TbQueueRemoteJsInvokeSettings { @Value("${queue.js.response_auto_commit_interval}") private int autoCommitInterval; - @Value("${queue.js.max_requests_timeout}") + @Value("${queue.js.max_invoke_requests_timeout}") private long maxRequestsTimeout; } diff --git a/docker/queue-aws-sqs.env b/docker/queue-aws-sqs.env index 07b9c69d90..c14e96f38a 100644 --- a/docker/queue-aws-sqs.env +++ b/docker/queue-aws-sqs.env @@ -2,4 +2,4 @@ TB_QUEUE_TYPE=aws-sqs TB_QUEUE_AWS_SQS_ACCESS_KEY_ID=YOUR_KEY TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY=YOUR_SECRET TB_QUEUE_AWS_SQS_REGION=YOUR_REGION -REMOTE_JS_MAX_REQUEST_TIMEOUT=60000 +REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT=60000 diff --git a/docker/queue-pubsub.env b/docker/queue-pubsub.env index 1a84f09cf0..730edc41cb 100644 --- a/docker/queue-pubsub.env +++ b/docker/queue-pubsub.env @@ -1,4 +1,4 @@ TB_QUEUE_TYPE=pubsub TB_QUEUE_PUBSUB_PROJECT_ID=YOUR_PROJECT_ID TB_QUEUE_PUBSUB_SERVICE_ACCOUNT=YOUR_SERVICE_ACCOUNT -REMOTE_JS_MAX_REQUEST_TIMEOUT=60000 +REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT=60000 diff --git a/docker/queue-service-bus.env b/docker/queue-service-bus.env index 24c90f660b..94a982d285 100644 --- a/docker/queue-service-bus.env +++ b/docker/queue-service-bus.env @@ -2,4 +2,4 @@ TB_QUEUE_TYPE=service-bus TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME=YOUR_NAMESPACE_NAME TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME=YOUR_SAS_KEY_NAME TB_QUEUE_SERVICE_BUS_SAS_KEY=YOUR_SAS_KEY -REMOTE_JS_MAX_REQUEST_TIMEOUT=60000 +REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT=60000