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