Add resilience: Spring Framework 7 @Retryable and @ConcurrencyLimit
Companion code for "Spring Framework 7's Built-in Resilience: @Retryable, @ConcurrencyLimit, and What's Left for Resilience4j". Every retry counted by recording real invocations: defaults, backoff and jitter, timeout, reactive and CompletableFuture returns, the concurrency limit's BLOCK and REJECT policies, retries around transactions, composition with Resilience4j 2.4.0, and the annotation API across 7.0.0-7.0.9. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01C3TETMrqVUWeFkNtz3Jbo3
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# GET /demo/retry/jitter (Spring Framework 7.0.9, Resilience4j 2.4.0, JDK 25)
|
||||
# Source: src/main/java/com/ankurm/resilience/web/DemoController.java
|
||||
|
||||
{
|
||||
"invocations": 7,
|
||||
"started at (ms)": [
|
||||
0,
|
||||
254,
|
||||
465,
|
||||
761,
|
||||
1055,
|
||||
1328,
|
||||
1621
|
||||
],
|
||||
"gaps (ms)": [
|
||||
254,
|
||||
211,
|
||||
296,
|
||||
294,
|
||||
273,
|
||||
293
|
||||
],
|
||||
"elapsed (ms)": 1622,
|
||||
"caller": "threw: com.ankurm.resilience.support.TransientException: attempt 7 failed",
|
||||
"MethodRetryEvents": [
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with TransientException -> will retry",
|
||||
"jittered failed with RetryException -> retry aborted"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user