首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在node.js中,如何从调用DocumentClient.queryDocuments()获得请求单元费用?

在node.js中,如何从调用DocumentClient.queryDocuments()获得请求单元费用?
EN

Stack Overflow用户
提问于 2015-07-10 18:30:21
回答 1查看 589关注 0票数 1

我第一次使用来自queryDocuments客户端的node.js ()方法。我以前使用过readDocument()、executeStoredProcedure()、replaceStoredProcedure()等,所有这些都返回一个标头对象,该对象允许您检查“x请求-充电”报头,以识别操作的请求单元费用。但是,当使用queryDocuments()或readDocuments()方法时,它返回一个QueryIterator,我看不到检查它以查看操作的RUs的方法。

我怀疑原因是这不是一次手术。这是一系列操作,您没有实现一种方法来聚合整个事件的总RUs。我愿意直接访问REST来获得它,但我想问一下,在我遇到麻烦之前,是否有办法从当前的库中获得它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 20:26:21

您可以通过检查callback中用于queryIterator.executeNext()的第三个输入参数来检查响应头(例如queryIterator.executeNext())。

例如,这里有一个代码示例,它使用响应头(x-ms-retry-after-ms)在节流阀上实现重试逻辑(错误429)。

代码语言:javascript
复制
var queryIterator = documentClient.queryDocuments(collection._self, query);
executeNextWithRetry(yourCallback);

function executeNextWithRetry(callback) {
    queryIterator.executeNext(function(err, results, responseHeaders) {
        if(err && err.code === 429 && responseHeaders['x-ms-retry-after-ms']) {

            console.log("Retrying after " + responseHeaders['x-ms-retry-after-ms']);

            setTimeout(function() {
                executeNextWithRetry(callback);
            }, responseHeaders['x-ms-retry-after-ms']);

        } else {
            callback(err, results, responseHeaders);
        }
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31347880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档