我第一次使用queryDocuments() method from the node.js client。我之前使用过readDocument(),executeStoredProcedure(),replaceStoredProcedure()等等,所有这些都返回一个头对象,允许你检查'x-ms-request-charge'标题来识别请求单元的费用操作。但是,当使用queryDocuments()或readDocuments()方法时,它返回一个QueryIterator,我没有看到检查它以查看操作的RU的方法。
我怀疑这是因为它不是一个操作。这是一系列操作,您没有实现聚合整个RU的总RU的方法。我愿意直接点击REST API来自己解决这个问题,但我想问一下,在我遇到麻烦之前是否有办法让当前的库得到它。
答案 0 :(得分:2)
您可以通过检查x-ms-request-charge
callback
中的第三个输入参数来检查回复标题(例如queryIterator.executeNext()
)。
例如,这是一个代码示例,它使用响应头(x-ms-retry-after-ms
)来实现对节流的重试逻辑(错误429)。
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);
}
});
}