Cloudant 429模型太多了

时间:2017-12-13 07:37:53

标签: java spring maven cloudant

我正在使用cloudant的免费订阅,所以我每秒只能进行5次查询。

我还有6个模型和6个repos,在repos初始化时我调用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。

我可以告诉春天在初始化一些回购之前等待5秒吗? 或者有最好的做法吗?

1 个答案:

答案 0 :(得分:2)

以下是一些选项:

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

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

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