2

我似乎无法WaitForNonStaleResultsAsOfNow()在 RavenDB 4 .NET 客户端 API 中找到等价物。

在以前的版本中,它可以通过 获得IRavenQueryable.Customize(),但现在它只包含WaitForNonStaleResultsAsOf()WaitForNonStaleResults()WaitForNonStaleResultsAsOf()仅接受 ETag 而没有 DateTime 。

另外,我尝试寻找WaitForNonStaleResultsAsOfLastWrite(),但也找不到。而且我无法通过使用来复制自己的行为,IDocumentStore.GetLastWrittenEtag()因为它在 4.0.0 中不存在。

再挖掘一下,我发现最后一个 ETag 将在Raven.Client.Documents.Operations.DatabaseStatistics作为响应接收到的 -object上可用Raven.Client.Documents.Commands.GetStatisticsCommand......但我也不知道如何在 4.0 中发出这个命令:(

在 RavenDB 4 中实现这一点的任何帮助将不胜感激。

4

1 回答 1

3

在 v4.0 中,您应该只使用WaitForNonStaleResults. 它将完全按原样WaitForNonStaleResultsAsOfNow工作。它要求服务器等待查询,直到查询中所有集合的当前最大 etag。

截止 etag 用于检查索引是否已经处理了具有给定 etag 的文档。与 Cutoff 不同,它使用日期并且容易受到机器之间时钟同步问题的影响,cutoff etag 不依赖于服务器和客户端都具有同步时钟,并且可以在没有它的情况下工作。

WaitForNonStaleResultsAsOf将从客户端中删除:http: //issues.hibernatingrhinos.com/issue/RavenDB-9678

于 2017-12-07T12:18:56.390 回答