Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问许可证需确认审计通过

spring-retry弹簧重试

Agent Skill

用于辅助 Java 项目开发、面向对象设计、Spring 生态、Maven 或 Gradle 依赖和后端工程实践。它适合让 Agent 分析类结构、设计接口、整理服务分层、生成测试或检查常见代码坏味道。使用时需要结合项目已有架构、包结构和依赖版本,不应只按通用教程改代码;涉及数据库、事务、并发或框架配置时,应先确认运行环境和回归测试范围。

总安装

682

周安装

29

GitHub Stars

12

下载量

239
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:spring-retry(弹簧重试)
来源仓库:https://github.com/claude-dev-suite/claude-dev-suite
仓库路径:skills/spring-retry
安装命令:
npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill spring-retry
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill spring-retry

简介

为 Spring 服务添加自动重试机制,提升分布式环境下的容错能力。

  • 适用于网络波动、临时故障或服务降级等 transient failure 场景。
  • 支持指数退避、最大尝试次数和异常类型过滤策略配置。
  • 需区分 transient 与 permanent failure,避免无限重试雪崩效应。
  • 技能来源为 claude-dev-suite 开源项目。

SKILL.md

Spring Retry - Quick Reference

Full Reference: See advanced.md for RetryTemplate patterns, custom retry policies, retry listeners, stateful retry, async retry, and testing.
Deep Knowledge: Use mcp__documentation__fetch_docs with technology: spring-retry for comprehensive documentation.

Dependencies

<dependency>
    <groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
</dependency>

Enable Retry

@SpringBootApplication
@EnableRetry
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@Retryable Annotation

Basic Usage

@Retryable(maxAttempts = 3)
public String callExternalApi(String endpoint) {
    return restClient.get(endpoint);
}

With Specific Exceptions

@Retryable(
    retryFor = {ServiceUnavailableException.class, TimeoutException.class},
    noRetryFor = {PaymentDeclinedException.class},
    maxAttempts = 5
)
public PaymentResult processPayment(PaymentRequest request) {
    return paymentGateway.charge(request);
}

With Backoff

@Retryable(
    maxAttempts = 4,
    backoff = @Backoff(
        delay = 1000,       // Initial delay: 1 second
        multiplier = 2,     // Exponential: 1s, 2s, 4s
        maxDelay = 10000    // Max delay: 10 seconds
    )
)
public void sendNotification(Notification notification) {
    notificationClient.send(notification);
}

@Recover
public void recoverNotification(Exception e, Notification notification) {
    log.error("Failed to send notification after retries: {}", notification.getId());
    deadLetterQueue.add(notification);
}

@Recover Method

@Service
public class UserService {

    @Retryable(retryFor = ServiceException.class, maxAttempts = 3)
    public User getUser(Long id) {
        return userClient.findById(id);
    }

    // Must have same return type
    // First parameter can be the exception
    @Recover
    public User recoverGetUser(ServiceException e, Long id) {
        log.warn("Falling back to cached user for id: {}", id);
        return userCache.get(id);
    }

    // Multiple recover methods for different exceptions
    @Recover
    public User recoverGetUserTimeout(TimeoutException e, Long id) {
        return User.unknown(id);
    }
}

Best Practices

DoDon't
Use exponential backoffFixed rapid retries
Set max attempts limitRetry indefinitely
Handle non-retryable exceptionsRetry business errors
Log retry attemptsSilent retries
Implement recovery fallbackLet retries fail silently

When NOT to Use This Skill

  • Circuit breaker - Use spring-cloud-circuitbreaker or Resilience4j
  • Message retry - Use Kafka retry topics or DLT
  • Non-idempotent operations - Ensure idempotency first
  • Business errors - Only retry transient failures

Anti-Patterns

Anti-PatternProblemSolution
Retry indefinitelyHangs foreverSet max attempts
Fixed rapid retryOverwhelms serviceUse exponential backoff
Retrying business errorsWastes resourcesUse noRetryFor
No recovery methodSilent failuresImplement @Recover

Quick Troubleshooting

ProblemDiagnosticFix
Retry not happeningCheck @EnableRetryAdd to config class
@Recover not calledCheck method signatureMatch return type and params
Too many retriesCheck maxAttemptsReduce or add timeout
Backoff not workingCheck annotationVerify @Backoff config

Production Checklist

  • Appropriate max attempts set
  • Exponential backoff configured
  • Max delay capped
  • Non-retryable exceptions defined
  • Recovery methods implemented
  • Retry listeners for monitoring
  • Metrics on retry counts

Reference Documentation

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.62%
按下载量换算80

Claude

32.02%
按下载量换算77

Cursor

21.44%
按下载量换算51

Gemini CLI

9.27%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills