如果我通過代碼向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'修補整個集合,並且據我所知,這是'不'阻塞。這真的是我需要幫助的 - 我會更新我的問題以反映這一點。 –