Azure 表查询返回空结果,且连续标记不为空

标签 azure pagination token continuation

正如上面所说的https://msdn.microsoft.com/en-us/library/azure/dd135718.aspx

"It is possible for a query to return no results but to still return a continuation header."

所以我的问题是 - 那么调用者的行为应该是什么?

  1. 一段时间后重试?
  2. 将其视为结果集的结尾吗?
  3. 创建新查询,无需继续。根据最后检索的数据更新 token 过滤器?

还有人说, “针对表服务的查询一次最多可返回 1,000 个项目,并且执行时间最长为 5 秒。如果结果集包含超过 1,000 个项目,如果查询未在 5 秒内完成,或者如果查询跨越分区边界,响应包含为开发人员提供继续标记的 header ,以便在结果集中的下一项恢复查询。可以为查询表操作或查询实体操作返回连续标记 header ”

因此,当始终返回带有继续标记的空结果时,重试策略可能会导致我们陷入无限循环......

最佳答案

您应该立即构建并使用下一个查询,并在其中传递继续标记。如上所述here: Query Timeout and Pagination 。将从上一个请求结束的位置开始搜索表存储。您得到的结果为空,因为表存储在五秒内没有找到任何匹配的数据,但仍有数据可供搜索。

After you have retrieved the continuation tokens, use their values to construct a query to return the next page of results.

如果您使用 .NET 和程序集 Microsoft.WindowsAzure.Storage,则有一个 BeginExecuteQuerySegmented 方法可以为您构建所有请求。示例:https://stackoverflow.com/a/13428086/1051244

关于Azure 表查询返回空结果,且连续标记不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34455298/

相关文章:

android - 如何为移动应用创建无密码登录

azure - 如何配置多个同一类型的 Gitlabomniauth 提供程序?

azure - 在 Azure 中的 Docker 化应用服务上运行 'install' 命令

powershell - Azure 自定义脚本扩展。以另一个用户身份执行脚本

jquery - 在传递到 Web 服务之前将 jqGrid rowNum 从 ALL 更改为 -1 的最佳方法

string - 使用 JavaCC 解析字符串

azure - 管理 Azure WebApp 部署槽和 API Manager

php - 使用 HABTM 模型的 CakePHP 分页

php - 如何创建自定义 Zend Paginator Adapter(Zend 框架 1)

java - 从antlr token 生成代码