RavenDB 4 中的 WaitForNonStaleResultsAsOfNow()

WaitForNonStaleResultsAsOfNow() in RavenDB 4

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

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

此外,我尝试寻找 WaitForNonStaleResultsAsOfLastWrite(),但也找不到。而且我无法通过使用 IDocumentStore.GetLastWrittenEtag() 自己复制该行为,因为它在 4.0.

中不存在

进一步挖掘后,我发现最后一个 ETag 在 Raven.Client.Documents.Operations.DatabaseStatistics 对象上可用,作为 Raven.Client.Documents.Commands.GetStatisticsCommand 的响应...但我不知道如何在 4.0 中发出此命令:(

对于在 RavenDB 4 中实现此目的的任何帮助,我们将不胜感激。

在 v4.0 中你应该只使用 WaitForNonStaleResults。它会像 WaitForNonStaleResultsAsOfNow 一样工作。它要求服务器等待查询,直到查询中所有集合的当前最大 etag。

Cutoff etag is used to check if the index has already process a document with the given etag. Unlike Cutoff, which uses dates and is susceptible to clock synchronization issues between machines, cutoff etag doesn't rely on both the server and client having a synchronized clock and can work without it.

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