AWS Java SDK ClientExecutionTimeoutException

问题描述

使用以下值时,我们得到ClientExecutionTimeoutException

 ClientConfiguration config = new ClientConfiguration();
 config.setClientExecutionTimeout(100);
 config.setRequestTimeout(100);

这是在运行状况检查调用中,用于检查存储桶是否存在

amazonS3.doesBucketExistV2(bucketName);

任何人都面临类似的问题,对此有什么解决方案。我检查了POC,如果将其设置为400,错误消失。使用aws-java-sdk-s3 v 1.11和Java 8。

解决方法

由于超时设置为毫秒,因此您设置的执行和请求超时都非常低。

我建议您:

  • 将其设置为400毫秒。
  • 测试命令执行需要多少时间:
long startTime = System.currentTimeMillis();
amazonS3.doesBucketExistV2(bucketName);
long endTime = System.currentTimeMillis();
long timeElapsed = endTime - startTime;
System.out.println("Execution time in milliseconds: " + timeElapsed);

  • 如果经过的时间超过100毫秒,则您的代码将失败100毫秒,因为它应该是这样。
  • 根据需要设置超时时间,就可以了。