Я пытаюсь загрузить на S3 в моем асинхронном Java коде
private void submitCallablesWithExecutor () выбрасывает InterruptedException, ExecutionException, TimeoutException {
ExecutorService executorService = null;
try {
executorService = Executors.newCachedThreadPool();
Future<String> task1Future = executorService.submit(new Callable<String>() {
public String call() {
try {
processExportRequest(xmlPutRequest_, customizedRequest_, response_);
return "Success";
} catch (Exception ex) {
return ex.getMessage();
}
}
});
} finally {
executorService.shutdown();
try {
if (!executorService.awaitTermination(800, TimeUnit.MILLISECONDS)) {
executorService.shutdownNow();
}
} catch (InterruptedException e) {
executorService.shutdownNow();
}
}
}
в пределах processExportRequest Я вызываю загрузку до S3. Я пробовал и S3Client и S3AsyncClient. В обоих случаях я получаю следующую ошибку:
Не удалось загрузить на S3: java .lang.IllegalStateException: прервано ожидание для обновления sh значения.
Я не Посмотрите где-нибудь в моем коде, который вызывает Thread.interrupt (), и все остальное, кажется, работает нормально, только не загрузка S3. Может быть, многопоточная природа Java Future не совместима с AWS SDK? Благодаря.