Handle onReceive logic in background thread (#7809)
This commit is contained in:
parent
3b95ef0b95
commit
3d17ac3d4c
|
|
@ -29,6 +29,7 @@ class LongPollingTransport implements Transport {
|
||||||
private Single<String> accessTokenProvider;
|
private Single<String> accessTokenProvider;
|
||||||
private CompletableSubject receiveLoop = CompletableSubject.create();
|
private CompletableSubject receiveLoop = CompletableSubject.create();
|
||||||
private ExecutorService threadPool;
|
private ExecutorService threadPool;
|
||||||
|
private ExecutorService onReceiveThread;
|
||||||
private AtomicBoolean stopCalled = new AtomicBoolean(false);
|
private AtomicBoolean stopCalled = new AtomicBoolean(false);
|
||||||
|
|
||||||
private final Logger logger = LoggerFactory.getLogger(LongPollingTransport.class);
|
private final Logger logger = LoggerFactory.getLogger(LongPollingTransport.class);
|
||||||
|
|
@ -38,6 +39,7 @@ class LongPollingTransport implements Transport {
|
||||||
this.client = client;
|
this.client = client;
|
||||||
this.pollingClient = client.cloneWithTimeOut(POLL_TIMEOUT);
|
this.pollingClient = client.cloneWithTimeOut(POLL_TIMEOUT);
|
||||||
this.accessTokenProvider = accessTokenProvider;
|
this.accessTokenProvider = accessTokenProvider;
|
||||||
|
this.onReceiveThread = Executors.newSingleThreadExecutor();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Package private active accessor for testing.
|
//Package private active accessor for testing.
|
||||||
|
|
@ -98,7 +100,7 @@ class LongPollingTransport implements Transport {
|
||||||
} else {
|
} else {
|
||||||
if (response.getContent() != null) {
|
if (response.getContent() != null) {
|
||||||
logger.debug("Message received.");
|
logger.debug("Message received.");
|
||||||
this.onReceive(response.getContent());
|
onReceiveThread.submit(() ->this.onReceive(response.getContent()));
|
||||||
} else {
|
} else {
|
||||||
logger.debug("Poll timed out, reissuing.");
|
logger.debug("Poll timed out, reissuing.");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue