2015-07-10 2 views
1

Я использую queryDocuments() method from the node.js client в первый раз. Я ранее использовал readDocument(), executeStoredProcedure(), replaceStoredProcedure() и т. Д., И все они возвращают объект заголовка, который позволяет вам проверять заголовок «x-ms-request-charge», чтобы различать стоимость единицы запроса для операция. Однако при использовании методов queryDocuments() или readDocuments() он возвращает QueryIterator, и я не вижу способа проверить его, чтобы увидеть RU для операции.В node.js, как мне получить абонентскую плату за подписку от вызова DocumentClient.queryDocuments()?

Я подозреваю, что причина в том, что это не одна операция. Это серия операций, и вы не реализовали способ объединения всех RU для всего. Я готов ударить REST API напрямую, чтобы получить это сам, но я хотел спросить, есть ли способ получить его с текущей библиотекой, прежде чем я столкнулся с проблемой.

ответ

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); 
     } 
    }); 
} 
+0

Спасибо. Я отправил запрос на перенос для обновления документов для executeNext(). В настоящее время он говорит: «принимает две ошибки параметров, resourceList». Я заметил, что мой последний запрос на удаление документа doc никогда не сливался, поэтому я добавил его к этому последнему. –

Смежные вопросы