0
私は、UPDATE/DELETE Rest Endpointを呼び出す必要があるユースケースを持っています。 エンティティのロックが解除されるまでしばらくお待ちください。そうでなければ、強制的にロック解除エンドポイントを呼び出し、もう一度私の元のリクエストを呼び出します。これは何とかフェイルセーフで可能ですか?私がこれまで試したどのような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);
}
しかし、このアプローチでは、私は最後の「再試行」を自分で行う必要があると、このアクションの結果を得ることができません。