跳到正文
cccskills
免费在 GitHub 公开

resilience-retry

Use when adding retries, backoff, or concurrency protection to Spring Boot 3 / Spring Framework 6 services. Covers Spring Retry or Resilience4j selection, proxy behavior, and transaction limits.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(4)

  • SKILL.md1.8 KB
  • agents/openai.yaml202 B
  • examples/bad-payment-client.java154 B
  • examples/good-payment-client.java206 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Resilience and Retry (Boot 3)

Boot 3 does not have Spring Framework 7 core resilience annotations. Choose Spring Retry for simple imperative retry or Resilience4j when you also need circuit breakers, rate limiting, or bulkheads. Keep the dependency and configuration explicit.

@Configuration
@EnableRetry
class RetryConfig { }

@Service
class PaymentClient {
    @Retryable(
        retryFor = ConnectException.class,
        maxAttempts = 4,
        backoff = @Backoff(delay = 200, multiplier = 2.0, maxDelay = 2000))
    PaymentResult charge(ChargeRequest request) { ... }

    @Recover
    PaymentResult recover(ConnectException error, ChargeRequest request) { ... }
}

Spring Retry's maxAttempts includes the initial call. Resilience4j is preferable when retry must be composed with a circuit breaker or bulkhead. Both approaches are proxy-based: self invocation bypasses advice, and retrying a method inside a rollback-only transaction does not create a fresh transaction for each attempt.

Gotchas

  • Agent uses Framework 7 @EnableResilientMethods - Boot 3 needs Spring Retry or Resilience4j.
  • Agent confuses maxAttempts with retry count - Spring Retry includes the initial call.
  • Agent adds @Recover to Resilience4j - recovery must be modeled with a fallback or caller handling.
  • Agent retries a self-invoked method - call through a Spring proxy.
  • Agent retries inside a transaction expecting a fresh transaction - move retry outside the transactional bean.
  • Agent retries non-idempotent writes without an idempotency key - protect payment and command operations.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor telemetry, or protected prompt and completion logging. Use production-observability for general service metrics, health, logs, and OTLP setup.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3242026年10月22日 更新

Use when versioning Spring MVC or WebFlux APIs in Spring Boot 4 / Spring Framework 7. Covers built-in mapping versions, request version resolution, defaults, supported versions, and deprecation headers.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3242026年10月22日 更新

Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type strategies, compatibility rules, and deprecation handling.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3242026年10月22日 更新

Use when introducing or correcting grouped Spring Boot configuration, typed property binding, validation, profiles or secret injection. Do not rewrite unrelated single-value configuration.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3242026年10月22日 更新

Use when packaging Spring Boot 4 as an OCI image, JVM container, AOT application, or GraalVM native executable. Covers buildpacks, layers, runtime hints, probes, security, and verification.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3242026年10月22日 更新

Use when packaging a Spring Boot 3 application as an OCI image or GraalVM native executable. Covers buildpacks, layered images, JVM containers, AOT hints, probes, security, and verification.

中文简介正在准备中。当前显示原文说明。

rrezartprebreza/spring-boot-skills3242026年10月22日 更新

查看 rrezartprebreza 的全部技能

报告此技能的问题