使用 UpdateByIndex 时知道脚本补丁请求何时完成
Knowing when a Scripted Patch Request has completed when using UpdateByIndex
如果我通过代码向我的 RavenDb 发出脚本补丁请求,有什么方法可以发现(使用代码)if/when 补丁请求已完成?
更新
具体来说,我将 ScriptedPatchRequest
与 DatabaseCommands.UpdateByIndex
一起使用 - 我需要确保补丁在继续之前已完成。
同步 DatabaseCommands.Patch
方法会阻塞,直到补丁完成 运行。
异步 AsyncDatabaseCommands.PatchAsync
方法 returns 一个 Task<RavenJObject>
在补丁完成 运行 时完成,因此可以 await
ed。
这样,客户端API 提供阻塞和非阻塞补丁请求功能。 DatabaseCommands
和 AsyncDatabaseCommands
.
上的所有其他方法也是如此
TBH 我确实认为 Patch 命令的行为记录得相当少......我只是通过实验弄清楚了。
DatabaseCommands.UpdateByIndex
returns Operation
的实例。您可以对此调用 WaitForCompletion()
来,嗯,等待操作完成。如果您喜欢这种方法,也有此方法的异步版本。
如果我通过代码向我的 RavenDb 发出脚本补丁请求,有什么方法可以发现(使用代码)if/when 补丁请求已完成?
更新
具体来说,我将 ScriptedPatchRequest
与 DatabaseCommands.UpdateByIndex
一起使用 - 我需要确保补丁在继续之前已完成。
同步 DatabaseCommands.Patch
方法会阻塞,直到补丁完成 运行。
异步 AsyncDatabaseCommands.PatchAsync
方法 returns 一个 Task<RavenJObject>
在补丁完成 运行 时完成,因此可以 await
ed。
这样,客户端API 提供阻塞和非阻塞补丁请求功能。 DatabaseCommands
和 AsyncDatabaseCommands
.
TBH 我确实认为 Patch 命令的行为记录得相当少......我只是通过实验弄清楚了。
DatabaseCommands.UpdateByIndex
returns Operation
的实例。您可以对此调用 WaitForCompletion()
来,嗯,等待操作完成。如果您喜欢这种方法,也有此方法的异步版本。