如果我通过代码向RavenDb发出脚本修补程序请求,有什么方法可以发现(使用代码)是否/何时完成修补程序请求?在使用UpdateByIndex时知道脚本修补程序请求的完成
更新 具体来说,我用ScriptedPatchRequest
与DatabaseCommands.UpdateByIndex
- 我需要确保补丁是否继续之前完成。
如果我通过代码向RavenDb发出脚本修补程序请求,有什么方法可以发现(使用代码)是否/何时完成修补程序请求?在使用UpdateByIndex时知道脚本修补程序请求的完成
更新 具体来说,我用ScriptedPatchRequest
与DatabaseCommands.UpdateByIndex
- 我需要确保补丁是否继续之前完成。
DatabaseCommands.UpdateByIndex
返回Operation
的实例。您可以拨打WaitForCompletion()
来呃,等待操作完成。如果这是你喜欢的风格,那么这种方法也有一个异步版本。
同步DatabaseCommands.Patch
方法会阻塞,直到修补程序运行完毕。
异步AsyncDatabaseCommands.PatchAsync
方法返回Task<RavenJObject>
,它在修补程序运行完成时完成,因此可以是await
ed。
这样,客户端API提供了阻塞和非阻塞补丁请求功能。 DatabaseCommands
和AsyncDatabaseCommands
上的所有其他方法也是如此。
TBH我确实认为Patch命令的行为记录得相当糟糕......我只是通过实验找出了它。
谢谢。这对修补单个文档非常有用。但是,我经常使用'DatabaseCommands.UpdateByIndex'修补整个集合,并且据我所知,这是'不'阻塞。这真的是我需要帮助的 - 我会更新我的问题以反映这一点。 –