azure 如何在重试策略中添加重试延迟?

um6iljoc  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(197)

我试图通过使用AWS SDK使用S3 API将文件上传到Azure,但我面临间歇性文件上传问题,这是错误
Cannot retry after server error, command is not replayable: [method=org.jclouds.azureblob.AzureBlobClient.public abstract java.lang.String org.jclouds.azureblob.AzureBlobClient.putBlob(java.lang.String,org.jclouds.azureblob.domain.AzureBlob)
我也有一个重试策略

RetryPolicy.builder().numRetries(retries).build()

它重试了10次并给出错误是在重试之间增加了延迟
你知道我如何才能实现它吗,新加入AWS?

2jcobegt

2jcobegt1#

你想要的是一个后退策略:https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/retry/RetryPolicy.BackoffStrategy.html
您可以选择其中一个,并像这样设置:

RetryPolicy.builder()
        .withBackoffStrategy(new ExponentialBackoffStrategy(100, 2000))
        .build()

当然这是使用AWS和Azure必须有类似的策略。
[更新]
使用Azure Java SDK,您可以将重试设置为:

RetryPolicy policy = new RetryExponentialRetry(BACKOFF_DELTA, MAX_RETRIES)

相关问题