本文整理汇总了Java中com.amazonaws.ClientConfiguration.setRetryPolicy方法的典型用法代码示例。如果您正苦于以下问题:Java ClientConfiguration.setRetryPolicy方法的具体用法?Java ClientConfiguration.setRetryPolicy怎么用?Java ClientConfiguration.setRetryPolicy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.ClientConfiguration
的用法示例。
在下文中一共展示了ClientConfiguration.setRetryPolicy方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: newInstance
import com.amazonaws.ClientConfiguration; //导入方法依赖的package包/类
public AmazonS3 newInstance(Configuration conf) {
int maxErrorRetry = conf.getInt(ConfigurationVariable.UPLOAD_RETRY_COUNT.getName(),
ConfigurationVariable.UPLOAD_RETRY_COUNT.defaultIntValue());
long errorRetryDelay = conf.getLong(ConfigurationVariable.UPLOAD_RETRY_DELAY_MS.getName(),
ConfigurationVariable.UPLOAD_RETRY_DELAY_MS.defaultLongValue());
LOG.info("Creating AWS S3 client with a retry policy of {} retries and {} ms of exponential backoff delay",
maxErrorRetry, errorRetryDelay);
RetryPolicy retryPolicy = new RetryPolicy(new CounterBasedRetryCondition(maxErrorRetry),
new ExponentialBackoffStrategy(errorRetryDelay), maxErrorRetry, true);
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setRetryPolicy(retryPolicy);
clientConfiguration.setMaxErrorRetry(maxErrorRetry);
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder
.standard()
.withCredentials(new HadoopAWSCredentialProviderChain(conf))
.withClientConfiguration(clientConfiguration);
EndpointConfiguration endpointConfiguration = getEndpointConfiguration(conf);
if (endpointConfiguration != null) {
builder.withEndpointConfiguration(endpointConfiguration);
} else {
builder.withRegion(getRegion(conf));
}
return builder.build();
}
示例2: S3SQSClient
import com.amazonaws.ClientConfiguration; //导入方法依赖的package包/类
public S3SQSClient(Region region, String queueName, String accessKey, String secretKey) {
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setRequestTimeout(5000);
clientConfiguration.setRetryPolicy(new RetryPolicy(null, null, 3, true));
if (accessKey.isEmpty() && secretKey.isEmpty()) {
this.sqs = new AmazonSQSClient(new InstanceProfileCredentialsProvider(), clientConfiguration);
} else {
this.sqs = new AmazonSQSClient(new BasicAWSCredentials(accessKey, secretKey), clientConfiguration);
}
this.sqs.setRegion(region);
this.queueName = queueName;
}
示例3: buildConfiguration
import com.amazonaws.ClientConfiguration; //导入方法依赖的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;
}