【问题标题】:WaitForNonStaleResultsAsOfNow() in RavenDB 4RavenDB 4 中的 WaitForNonStaleResultsAsOfNow()
【发布时间】:2017-12-07 20:26:06
【问题描述】:

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

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

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

再挖掘一下,我发现最后一个 ETag 将在作为 Raven.Client.Documents.Commands.GetStatisticsCommand 的响应收到的 Raven.Client.Documents.Operations.DatabaseStatistics-object 上可用...但我无法弄清楚如何在 4.0 中发出此命令要么:(

非常感谢任何有关在 RavenDB 4 中实现此目的的帮助。

【问题讨论】:

    标签: ravendb ravendb4


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多