Cloudant 429 模型太多
Cloudant 429 too many model
我使用的是免费订阅的 cloudant,所以我每秒只能进行 5 次查询。
我还有 6 个模型和 6 个存储库,在存储库初始化时我调用了 createIndex:
@PostConstruct
private void initRepo() {
db = dbManager.getDatabase();
List<Index> indexes = db.listIndices();
String indexName = String.format("index_%s", getModelClass().getSimpleName());
if (indexes != null && !indexes.stream().filter(c -> c.getName().equals(indexName)).findFirst().isPresent()) {
Log.debug("Creating index for " + indexName);
db.createIndex(indexName, indexName, null,
getIndexFields() != null ? getIndexFields().toArray(new IndexField[0]) : null);
}
}
使用 mvn test
或 mvn install
所有 6 个 initRepo 都被调用所以我得到 429。
我可以告诉 spring 在初始化一些 repos 之前等待 5 秒吗?
或者有最佳实践吗?
这里有一些选项:
1) 对您的 Cloudant 操作进行排队,并且仅以低于速率限制的速率(比如每秒 4 个)使用队列中的项目
2) 将您的 Cloudant 服务升级到更慷慨的计划
3) java-cloudant 库可以选择使用 429ReplayInterceptor。这将重试 API 个获得 429 响应的调用,指数退避。
我使用的是免费订阅的 cloudant,所以我每秒只能进行 5 次查询。
我还有 6 个模型和 6 个存储库,在存储库初始化时我调用了 createIndex:
@PostConstruct
private void initRepo() {
db = dbManager.getDatabase();
List<Index> indexes = db.listIndices();
String indexName = String.format("index_%s", getModelClass().getSimpleName());
if (indexes != null && !indexes.stream().filter(c -> c.getName().equals(indexName)).findFirst().isPresent()) {
Log.debug("Creating index for " + indexName);
db.createIndex(indexName, indexName, null,
getIndexFields() != null ? getIndexFields().toArray(new IndexField[0]) : null);
}
}
使用 mvn test
或 mvn install
所有 6 个 initRepo 都被调用所以我得到 429。
我可以告诉 spring 在初始化一些 repos 之前等待 5 秒吗? 或者有最佳实践吗?
这里有一些选项:
1) 对您的 Cloudant 操作进行排队,并且仅以低于速率限制的速率(比如每秒 4 个)使用队列中的项目
2) 将您的 Cloudant 服务升级到更慷慨的计划
3) java-cloudant 库可以选择使用 429ReplayInterceptor。这将重试 API 个获得 429 响应的调用,指数退避。