【发布时间】:2019-12-17 09:07:16
【问题描述】:
在 8 月 6 日当天,我们在查询 cosmosDB 时遇到了一个反复出现的问题。
我们的查询缺少结果,但我们仍然收到“有效”回复。在我们的应用程序的一些非常批评的查询中没有返回批次结果。 例如,一个应该返回 250 个文档的请求返回了 240 个。跨越 5-6 小时框架的多个查询具有这些不完整的结果。查询的数据是 不可否认地存在于数据库中。
我们使用与此类似的 sn-p 进行查询,使用 200 个文档的分页:
public static List<T> ToList<T>(this IDocumentQuery<T> documentQuery)
{
List<T> documents = new List<T>();
while (documentQuery.HasMoreResults)
{
documents.AddRange(documentQuery.ExecuteNextAsync<T>().Result);
}
return documents;
}
IDocumentQuery 是通过强制转换 IQueryable 来初始化的,有点像这样:
queryable.AsDocumentQuery()
使用的解决方案类似于 microsoft 文档中的内容:https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.documents.linq.documentqueryable.asdocumentquery?view=azure-dotnet
我们目前正在将我们的数据解决方案迁移到 cosmosDB,这就是我们注意到问题的方式。 你有什么想法可能导致这种情况吗?我们应该期待更多相同类型的问题吗?你知道吗 我们如何确定我们收到的结果不完整?
【问题讨论】: