当前位置: 首页>>代码示例>>Java>>正文


Java RetryPolicy.BackoffStrategy方法代码示例

本文整理汇总了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();
}
 
开发者ID:awslabs,项目名称:aws-apigateway-importer,代码行数:12,代码来源:ApiImporterDefaultModule.java

示例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;
    };
}
 
开发者ID:awslabs,项目名称:aws-apigateway-importer,代码行数:37,代码来源:ApiImporterDefaultModule.java

示例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;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:49,代码来源:AwsEc2ServiceImpl.java

示例4: instrumentedBackoffStrategy

import com.amazonaws.retry.RetryPolicy; //导入方法依赖的package包/类
@Bean
RetryPolicy.BackoffStrategy instrumentedBackoffStrategy(Registry registry) {
  return new InstrumentedBackoffStrategy(registry);
}
 
开发者ID:spinnaker,项目名称:kork,代码行数:5,代码来源:AwsComponents.java

示例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");
}
 
开发者ID:spinnaker,项目名称:kork,代码行数:5,代码来源:InstrumentedBackoffStrategy.java


注:本文中的com.amazonaws.retry.RetryPolicy.BackoffStrategy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。