Browse Source

Fixed timeout logic

pull/1150/head
Andrew Shvayka 8 years ago
parent
commit
9ef768f5e6
  1. 1
      application/src/main/java/org/thingsboard/server/service/script/RemoteJsInvokeService.java
  2. 6
      common/queue/src/main/java/org/thingsboard/server/kafka/TbKafkaRequestTemplate.java

1
application/src/main/java/org/thingsboard/server/service/script/RemoteJsInvokeService.java

@ -96,6 +96,7 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService {
builder.maxRequestTimeout(maxRequestsTimeout); builder.maxRequestTimeout(maxRequestsTimeout);
builder.pollInterval(responsePollDuration); builder.pollInterval(responsePollDuration);
kafkaTemplate = builder.build(); kafkaTemplate = builder.build();
kafkaTemplate.init();
} }
@PreDestroy @PreDestroy

6
common/queue/src/main/java/org/thingsboard/server/kafka/TbKafkaRequestTemplate.java

@ -48,6 +48,7 @@ public class TbKafkaRequestTemplate<Request, Response> {
private final TBKafkaProducerTemplate<Request> requestTemplate; private final TBKafkaProducerTemplate<Request> requestTemplate;
private final TBKafkaConsumerTemplate<Response> responseTemplate; private final TBKafkaConsumerTemplate<Response> responseTemplate;
private final ConcurrentMap<UUID, ResponseMetaData<Response>> pendingRequests; private final ConcurrentMap<UUID, ResponseMetaData<Response>> pendingRequests;
private final boolean internalExecutor;
private final ExecutorService executor; private final ExecutorService executor;
private final long maxRequestTimeout; private final long maxRequestTimeout;
private final long maxPendingRequests; private final long maxPendingRequests;
@ -69,8 +70,10 @@ public class TbKafkaRequestTemplate<Request, Response> {
this.maxPendingRequests = maxPendingRequests; this.maxPendingRequests = maxPendingRequests;
this.pollInterval = pollInterval; this.pollInterval = pollInterval;
if (executor != null) { if (executor != null) {
internalExecutor = false;
this.executor = executor; this.executor = executor;
} else { } else {
internalExecutor = true;
this.executor = Executors.newSingleThreadExecutor(); this.executor = Executors.newSingleThreadExecutor();
} }
} }
@ -126,6 +129,9 @@ public class TbKafkaRequestTemplate<Request, Response> {
public void stop() { public void stop() {
stopped = true; stopped = true;
if (internalExecutor) {
executor.shutdownNow();
}
} }
public ListenableFuture<Response> post(String key, Request request) { public ListenableFuture<Response> post(String key, Request request) {

Loading…
Cancel
Save