在使用UpdateByIndex时知道脚本修补程序请求何时完成

时间:2017-02-24 16:26:29

标签: ravendb

如果我通过代码向我的RavenDb发出脚本化补丁请求,是否有任何方法可以发现(使用代码)补丁请求是否/何时完成?

更新 具体来说,我将ScriptedPatchRequestDatabaseCommands.UpdateByIndex一起使用 - 我需要确保修补程序已完成,然后再继续。

2 个答案:

答案 0 :(得分:4)

同步DatabaseCommands.Patch方法将一直阻塞,直到补丁程序运行完毕。

异步AsyncDatabaseCommands.PatchAsync方法返回在修补程序运行完成时完成的Task<RavenJObject>,因此可以await编辑。

这样,客户端API提供阻塞和非阻塞补丁请求功能。 DatabaseCommandsAsyncDatabaseCommands上的所有其他方法也是如此。

TBH我认为Patch命令的行为记录得相当糟糕......我只是通过实验来解决它。

答案 1 :(得分:0)

DatabaseCommands.UpdateByIndex返回Operation的实例。您可以在此呼叫WaitForCompletion(),等待操作完成。如果这是你喜欢的风格,那么这个方法也有异步版本。