separated max_requests_timeout for RemoteJsInvokeService
This commit is contained in:
parent
c2dd91d819
commit
ebee42a0ee
@ -46,8 +46,11 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
@Service
|
@Service
|
||||||
public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
||||||
|
|
||||||
@Value("${queue.js.max_requests_timeout}")
|
@Value("${queue.js.max_eval_requests_timeout}")
|
||||||
private long maxRequestsTimeout;
|
private long maxEvalRequestsTimeout;
|
||||||
|
|
||||||
|
@Value("${queue.js.max_invoke_requests_timeout}")
|
||||||
|
private long maxInvokeRequestsTimeout;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Value("${js.remote.max_errors}")
|
@Value("${js.remote.max_errors}")
|
||||||
@ -87,7 +90,7 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
|||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
super.init(maxRequestsTimeout);
|
super.init(maxInvokeRequestsTimeout);
|
||||||
requestTemplate.init();
|
requestTemplate.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,8 +116,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
|||||||
|
|
||||||
log.trace("Post compile request for scriptId [{}]", scriptId);
|
log.trace("Post compile request for scriptId [{}]", scriptId);
|
||||||
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper));
|
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper));
|
||||||
if (maxRequestsTimeout > 0) {
|
if (maxEvalRequestsTimeout > 0) {
|
||||||
future = Futures.withTimeout(future, maxRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService);
|
future = Futures.withTimeout(future, maxEvalRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService);
|
||||||
}
|
}
|
||||||
queuePushedMsgs.incrementAndGet();
|
queuePushedMsgs.incrementAndGet();
|
||||||
Futures.addCallback(future, new FutureCallback<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>>() {
|
Futures.addCallback(future, new FutureCallback<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>>() {
|
||||||
@ -155,7 +158,7 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
|||||||
.setScriptIdMSB(scriptId.getMostSignificantBits())
|
.setScriptIdMSB(scriptId.getMostSignificantBits())
|
||||||
.setScriptIdLSB(scriptId.getLeastSignificantBits())
|
.setScriptIdLSB(scriptId.getLeastSignificantBits())
|
||||||
.setFunctionName(functionName)
|
.setFunctionName(functionName)
|
||||||
.setTimeout((int) maxRequestsTimeout)
|
.setTimeout((int) maxInvokeRequestsTimeout)
|
||||||
.setScriptBody(scriptIdToBodysMap.get(scriptId));
|
.setScriptBody(scriptIdToBodysMap.get(scriptId));
|
||||||
|
|
||||||
for (Object arg : args) {
|
for (Object arg : args) {
|
||||||
@ -167,8 +170,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper));
|
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper));
|
||||||
if (maxRequestsTimeout > 0) {
|
if (maxInvokeRequestsTimeout > 0) {
|
||||||
future = Futures.withTimeout(future, maxRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService);
|
future = Futures.withTimeout(future, maxInvokeRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService);
|
||||||
}
|
}
|
||||||
queuePushedMsgs.incrementAndGet();
|
queuePushedMsgs.incrementAndGet();
|
||||||
Futures.addCallback(future, new FutureCallback<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>>() {
|
Futures.addCallback(future, new FutureCallback<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>>() {
|
||||||
@ -210,8 +213,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper));
|
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> future = requestTemplate.send(new TbProtoJsQueueMsg<>(UUID.randomUUID(), jsRequestWrapper));
|
||||||
if (maxRequestsTimeout > 0) {
|
if (maxInvokeRequestsTimeout > 0) {
|
||||||
future = Futures.withTimeout(future, maxRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService);
|
future = Futures.withTimeout(future, maxInvokeRequestsTimeout, TimeUnit.MILLISECONDS, timeoutExecutorService);
|
||||||
}
|
}
|
||||||
JsInvokeProtos.RemoteJsResponse response = future.get().getValue();
|
JsInvokeProtos.RemoteJsResponse response = future.get().getValue();
|
||||||
|
|
||||||
|
|||||||
@ -669,7 +669,9 @@ queue:
|
|||||||
# JS Eval max pending requests
|
# JS Eval max pending requests
|
||||||
max_pending_requests: "${REMOTE_JS_MAX_PENDING_REQUESTS:10000}"
|
max_pending_requests: "${REMOTE_JS_MAX_PENDING_REQUESTS:10000}"
|
||||||
# JS Eval max request timeout
|
# 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
|
# JS response poll interval
|
||||||
response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}"
|
response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}"
|
||||||
# JS response auto commit interval
|
# JS response auto commit interval
|
||||||
|
|||||||
@ -37,6 +37,6 @@ public class TbQueueRemoteJsInvokeSettings {
|
|||||||
@Value("${queue.js.response_auto_commit_interval}")
|
@Value("${queue.js.response_auto_commit_interval}")
|
||||||
private int autoCommitInterval;
|
private int autoCommitInterval;
|
||||||
|
|
||||||
@Value("${queue.js.max_requests_timeout}")
|
@Value("${queue.js.max_invoke_requests_timeout}")
|
||||||
private long maxRequestsTimeout;
|
private long maxRequestsTimeout;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,4 +2,4 @@ TB_QUEUE_TYPE=aws-sqs
|
|||||||
TB_QUEUE_AWS_SQS_ACCESS_KEY_ID=YOUR_KEY
|
TB_QUEUE_AWS_SQS_ACCESS_KEY_ID=YOUR_KEY
|
||||||
TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY=YOUR_SECRET
|
TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY=YOUR_SECRET
|
||||||
TB_QUEUE_AWS_SQS_REGION=YOUR_REGION
|
TB_QUEUE_AWS_SQS_REGION=YOUR_REGION
|
||||||
REMOTE_JS_MAX_REQUEST_TIMEOUT=60000
|
REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT=60000
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
TB_QUEUE_TYPE=pubsub
|
TB_QUEUE_TYPE=pubsub
|
||||||
TB_QUEUE_PUBSUB_PROJECT_ID=YOUR_PROJECT_ID
|
TB_QUEUE_PUBSUB_PROJECT_ID=YOUR_PROJECT_ID
|
||||||
TB_QUEUE_PUBSUB_SERVICE_ACCOUNT=YOUR_SERVICE_ACCOUNT
|
TB_QUEUE_PUBSUB_SERVICE_ACCOUNT=YOUR_SERVICE_ACCOUNT
|
||||||
REMOTE_JS_MAX_REQUEST_TIMEOUT=60000
|
REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT=60000
|
||||||
|
|||||||
@ -2,4 +2,4 @@ TB_QUEUE_TYPE=service-bus
|
|||||||
TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME=YOUR_NAMESPACE_NAME
|
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_NAME=YOUR_SAS_KEY_NAME
|
||||||
TB_QUEUE_SERVICE_BUS_SAS_KEY=YOUR_SAS_KEY
|
TB_QUEUE_SERVICE_BUS_SAS_KEY=YOUR_SAS_KEY
|
||||||
REMOTE_JS_MAX_REQUEST_TIMEOUT=60000
|
REMOTE_JS_MAX_INVOKE_REQUEST_TIMEOUT=60000
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user