本文整理汇总了Java中com.amazonaws.retry.RetryPolicy.BackoffStrategy方法的典型用法代码示例。如果您正苦于以下问题:Java RetryPolicy.BackoffStrategy方法的具体用法?Java RetryPolicy.BackoffStrategy怎么用?Java RetryPolicy.BackoffStrategy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.retry.RetryPolicy
的用法示例。
在下文中一共展示了RetryPolicy.BackoffStrategy方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: provideAmazonApiGateway
import com.amazonaws.retry.RetryPolicy; //导入方法依赖的package包/类
@Provides
protected ApiGateway provideAmazonApiGateway(AWSCredentialsProvider credsProvider,
RetryPolicy.BackoffStrategy backoffStrategy,
@Named("region") String region) {
final RetryPolicy retrypolicy = new RetryPolicy(PredefinedRetryPolicies.DEFAULT_RETRY_CONDITION, backoffStrategy, 5, true);
final ClientConfiguration clientConfig = new ClientConfiguration().withUserAgent(USER_AGENT).withRetryPolicy(retrypolicy);
return new AmazonApiGateway(getEndpoint(region)).with(credsProvider).with(clientConfig).getApiGateway();
}
示例2: provideBackoffStrategy
import com.amazonaws.retry.RetryPolicy; //导入方法依赖的package包/类
@Provides
protected RetryPolicy.BackoffStrategy provideBackoffStrategy() {
// tune these parameters to handle throttling errors
final int maxBackoffInMilliseconds = 50 * 1000; // maximum exponential back-off time before retrying a request
final int throttlingScaleFactor = 800; // base sleep time for throttling exceptions
final int maxRetriesBeforeBackoff = 10; // log2(maxBackoffInMilliseconds/throttlingScaleFactor)
final int baseScaleFactor = 600; // base sleep time for general exceptions
final int throttlingScaleFactorRandomRange = throttlingScaleFactor / 4;
final Random random = new Random();
return (originalRequest, exception, retriesAttempted) -> {
LOG.debug("Caught error from service. Retry attempt: " + retriesAttempted, exception);
if (retriesAttempted < 0) return 0;
if (retriesAttempted > maxRetriesBeforeBackoff) return maxBackoffInMilliseconds;
int scaleFactor;
if (exception instanceof AmazonServiceException
&& RetryUtils.isThrottlingException((AmazonServiceException) exception)) {
scaleFactor = throttlingScaleFactor + random.nextInt(throttlingScaleFactorRandomRange);
} else {
scaleFactor = baseScaleFactor;
}
long delay = (1L << retriesAttempted) * scaleFactor;
delay = Math.min(delay, maxBackoffInMilliseconds);
LOG.info("Client backing off for " + delay + "ms");
return delay;
};
}
示例3: buildConfiguration
import com.amazonaws.retry.RetryPolicy; //导入方法依赖的package包/类
protected static ClientConfiguration buildConfiguration(Logger logger, Settings settings) {
ClientConfiguration clientConfiguration = new ClientConfiguration();
// the response metadata cache is only there for diagnostics purposes,
// but can force objects from every response to the old generation.
clientConfiguration.setResponseMetadataCacheSize(0);
clientConfiguration.setProtocol(CLOUD_EC2.PROTOCOL_SETTING.get(settings));
if (PROXY_HOST_SETTING.exists(settings) || CLOUD_EC2.PROXY_HOST_SETTING.exists(settings)) {
String proxyHost = CLOUD_EC2.PROXY_HOST_SETTING.get(settings);
Integer proxyPort = CLOUD_EC2.PROXY_PORT_SETTING.get(settings);
String proxyUsername = CLOUD_EC2.PROXY_USERNAME_SETTING.get(settings);
String proxyPassword = CLOUD_EC2.PROXY_PASSWORD_SETTING.get(settings);
clientConfiguration
.withProxyHost(proxyHost)
.withProxyPort(proxyPort)
.withProxyUsername(proxyUsername)
.withProxyPassword(proxyPassword);
}
// #155: we might have 3rd party users using older EC2 API version
String awsSigner = CLOUD_EC2.SIGNER_SETTING.get(settings);
if (Strings.hasText(awsSigner)) {
logger.debug("using AWS API signer [{}]", awsSigner);
AwsSigner.configureSigner(awsSigner, clientConfiguration);
}
// Increase the number of retries in case of 5xx API responses
final Random rand = Randomness.get();
RetryPolicy retryPolicy = new RetryPolicy(
RetryPolicy.RetryCondition.NO_RETRY_CONDITION,
new RetryPolicy.BackoffStrategy() {
@Override
public long delayBeforeNextRetry(AmazonWebServiceRequest originalRequest,
AmazonClientException exception,
int retriesAttempted) {
// with 10 retries the max delay time is 320s/320000ms (10 * 2^5 * 1 * 1000)
logger.warn("EC2 API request failed, retry again. Reason was:", exception);
return 1000L * (long) (10d * Math.pow(2, retriesAttempted / 2.0d) * (1.0d + rand.nextDouble()));
}
},
10,
false);
clientConfiguration.setRetryPolicy(retryPolicy);
clientConfiguration.setSocketTimeout((int) CLOUD_EC2.READ_TIMEOUT.get(settings).millis());
return clientConfiguration;
}
示例4: instrumentedBackoffStrategy
import com.amazonaws.retry.RetryPolicy; //导入方法依赖的package包/类
@Bean
RetryPolicy.BackoffStrategy instrumentedBackoffStrategy(Registry registry) {
return new InstrumentedBackoffStrategy(registry);
}
示例5: InstrumentedBackoffStrategy
import com.amazonaws.retry.RetryPolicy; //导入方法依赖的package包/类
public InstrumentedBackoffStrategy(Registry registry, RetryPolicy.BackoffStrategy delegate) {
this.registry = Objects.requireNonNull(registry, "registry");
this.delegate = Objects.requireNonNull(delegate, "delegate");
}