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
|
||||
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<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> 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<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>>() {
|
||||
@ -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<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> 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<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>>() {
|
||||
@ -210,8 +213,8 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
|
||||
.build();
|
||||
|
||||
ListenableFuture<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> 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();
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user