in src/backend/transcriber/src/main/java/com/amazonaws/transcribestreaming/retryclient/TranscribeStreamingRetryClient.java [143:171]
private void recursiveStartStream(final StartStreamTranscriptionRequest request,
final Publisher<AudioStream> publisher,
final StreamTranscriptionBehavior responseHandler,
final CompletableFuture<Void> finalFuture,
final int retryAttempt) {
CompletableFuture<Void> result = client.startStreamTranscription(request, publisher,
getResponseHandler(responseHandler));
result.whenComplete((r, e) -> {
if (e != null) {
if (retryAttempt <= maxRetries && isExceptionRetriable(e)) {
logger.error("Retry attempt:" + (retryAttempt + 1) );
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
recursiveStartStream(request, publisher, responseHandler, finalFuture, retryAttempt + 1);
} else {
responseHandler.onError(e);
finalFuture.completeExceptionally(e);
}
} else {
responseHandler.onComplete();
finalFuture.complete(null);
}
});
}