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);
}
但是,使用这种方法,我必须做最后的“重试”自己并不能获得这个动作的结果。