Java源码示例:software.amazon.awssdk.services.dynamodb.model.ResourceInUseException
示例1
public static boolean createTableIfNotExists(final DynamoDbClient dynamo, final String tableName) {
try {
dynamo.createTable(createTableRequest(tableName));
return waitUntilTableActive(dynamo, tableName);
} catch (ResourceInUseException e) {
LOG.info("Reused existing table");
}
return true;
}
示例2
public static CompletableFuture<Boolean> createTableIfNotExistsAsync(final DynamoDbAsyncClient dynamo, String table) {
return dynamo.createTable(DynamoDBUtils.createTableRequest(table))
.thenCompose(resp -> DynamoDBUtils.waitUntilTableActiveAsync(dynamo, table))
.exceptionally(th -> {
if (th.getCause() instanceof ResourceInUseException) {
LOG.info("Reused existing table");
return true;
} else {
LOG.error("Failed table creation", th);
return false;
}
});
}
示例3
/**
* Creates the table and ignores any errors if it already exists.
* @param dynamo The Dynamo client to use.
* @param createTableRequest The create table request.
* @return True if created, false otherwise.
*/
public static boolean createTableIfNotExists(final DynamoDbClient dynamo, final CreateTableRequest createTableRequest) {
try {
dynamo.createTable(createTableRequest);
return true;
} catch (final ResourceInUseException e) {
if (log.isTraceEnabled()) {
log.trace("Table " + createTableRequest.tableName() + " already exists", e);
}
}
return false;
}