java - Cloudant 429 模型过多

标签 java spring maven cloudant

我正在使用免费订阅的 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 testmvn install调用所有6个initRepo,所以我得到429。

我可以告诉 spring 在初始化一些存储库之前等待 5 秒吗? 或者有最佳实践吗?

最佳答案

以下是一些选项:

1) 对您的 Cloudant 操作进行排队,并且仅以低于速率限制的速率消耗队列中的项目(例如每秒 4 个)

2) 将您的 Cloudant 服务升级到更慷慨的计划

3) java-cloudant 库可以选择使用 429ReplayInterceptor 。这将重试 API 调用,并获得指数回退的 429 响应。

关于java - Cloudant 429 模型过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47787781/

相关文章:

java - 如何将所有日志从 hibernate 和 spring 重定向到 log4j2?

java - 在 Weblogic 中部署 Spring Boot 应用程序

java - 当我尝试运行程序时找不到类异常

java - 为什么 Java 8 和 Java 11 之间解析的依赖项不同?

java - 使用@ConfigurationProperties读取CF环境嵌套JSON

maven - 如何管理javascript/图像依赖

java - 将类似 JavaScript 的语法解析为我自己的 Java 方法

java - 我们如何实现车库门跟踪其最后移动方向?

java - Spring MVC 异步方法 (RXJava)

spring - 获取我的 REST API 文档的 Spring Boot Swagger 配置有什么问题?为什么我无法访问文档?