RavenDB一致性 - WaitForIndexesAfterSaveChanges()/ WaitForNonStaleResultsAsOfNow

问题描述 投票:2回答:1

我正在使用RavenDB 3.5。我知道查询实体不是acid,但每个ID的加载是。显然写给DB也是acid。到现在为止还挺好。现在有一个问题:我找到了一些代码:

  session.Advanced.WaitForIndexesAfterSaveChanges();
                entity = session.Load<T>(id);
                session.Delete(entity);
                session.SaveChanges();
                // Func<T, T> command
                command?.Invoke(entity);

在这里打电话给WaitForIndexesAfterSaveChanges()的目的是什么?这是因为执行命令?或者是因为可能会加速/消费查询应该立即赶上所做的更改?如果是这种情况,我可以删除此代码块中的WaitForIndexesAfterSaveChanges(),只需在查询中添加WaitForNonStaleResultsAsOfNow(),不是吗?如果我的关键查询已被标记为WaitForIndexesAfterSaveChanges(),我什么时候会首先使用WaitForNonStaleResultsAsOfNow()

ravendb data-consistency
1个回答
0
投票

此行为的最可能原因是希望在此操作中等待索引完成。您想要这样做的一个很好的例子是当您创建一个新项目时,下一个操作将显示一个项目列表。在保存期间,您可以使用WaitForIndexesAfterSaveChanges等待索引更新。

© www.soinside.com 2019 - 2024. All rights reserved.