TableStorage queryEntities иногда возвращает 0 записей, но без ошибок - PullRequest
0 голосов
/ 30 июня 2018

TableStorage & Nodejs

Используя функцию «queryEntities» иногда result.entries.length равен 0, даже когда я почти уверен, что в базе данных много записей. Параметры "где" в порядке, но иногда (возможно, один на каждые 100) он возвращает 0 записей. Ошибка не возвращена. Всего 0 записей.

И в моей функции это вызывает проблемы.

Моя теория состоит в том, что база данных иногда насыщается, потому что эта функция выполняется каждые 10 секунд, а может, иногда, до того, как завершается одна, запускается другая, и оба работают над одной и той же таблицей, и вместо ошибки она возвращает длину 0, что является чем-то ужасным .

Есть ли способ решить эту проблему? Разве это не должно возвращать ошибку?

1 Ответ

0 голосов
/ 30 июня 2018

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

Пожалуйста, прочтите этот документ для объяснения: https://docs.microsoft.com/en-us/rest/api/storageservices/query-timeout-and-pagination.

По этой ссылке:

Запрос к службе таблиц может вернуть не более 1000 элементов. одновременно и может выполняться максимум пять секунд. Если Набор результатов содержит более 1000 элементов, если запрос не завершить в течение пяти секунд, или если запрос пересекает раздел границы, ответ включает в себя заголовки, которые предоставляют разработчику с токенами продолжения, чтобы использовать для возобновления запроса на следующий элемент в наборе результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...