2
這是我想做的事:檢測couchbase中的鎖定釋放?
try to lock a few documents
if any lock fails:
unlock any docs we've locked so far
wait until all locks are cleared
retry from beginning
do something
不過,我不知道如何有效地等待,直到所有的鎖都被清除。我在couchbase文檔中找不到任何東西,除了使用「無限」循環來檢查鎖定嘗試是否返回臨時失敗錯誤。有沒有什麼好的方法可以在重試之前等待正確的時間? (加上一些隨機時間以避免重複衝突)
在重試之前等待15秒以上並不是真正用戶友好的。
如果多個服務器競爭鎖定某些文檔,並且它們都失敗,那麼使用指數級地減少等待時間是一個非常糟糕的主意。如果兩者都在同一時間再次嘗試,我們會一遍又一遍地得到同樣的問題。 –
除非他們鎖定在相同的順序,否則他們永遠不會在同一時間。一個會成功,其他人將不得不等待。 –
是的,但是如果它們不以相同的順序鎖定。他們可以分別鎖定「許多」文檔,只有少數文檔被兩個線程鎖定。當他們鎖定相同的文檔時,他們不必執行相同的任務。 –