0
我有一個用例,我需要調用UPDATE/DELETE Rest端點,它可能會返回關於實體被鎖定以進行編輯的異常。 我想等待一段時間讓實體解鎖,否則請強制解鎖端點,並再次調用我的原始請求。不知怎的,這是可能的嗎?Failsafe - 在超過重試次數時再執行一些操作,並再次嘗試一次
我試過到目前爲止:
lockRetryPolicy = new RetryPolicy()
.retryOn(LockException.class)
.withBackoff(1, 8, TimeUnit.MINUTES)
.withMaxDuration(30, TimeUnit.MINUTES);
和
private <R, T> R lockRetryExecution(String elementUrl, Callable<R> task) {
return Failsafe.with(lockRetryPolicy)
.onRetriesExceeded((o, throwable) -> {
forceUnlock(elementUrl);
task.call();
})
.withFallback((o, throwable) -> o)
.get(task);
}
但是,使用這種方法,我必須做最後的「重試」自己並不能獲得這個動作的結果。