Skip to content

Retryable注解

🌈特别说明

通过HelloWorld这个最简单的案例,我们可以看到Retryable注解就是SnailJob中最重要的入口,那么接下来我们就要看一下这个注解中定义了哪些属性, 又给了我们哪些可以配置的选项呢?

源码地址: snail-job-demo

Retryable注解全貌

参数描述默认值必须指定
scene场景
include包含的异常
exclude排除的异常
retryStrategy重试策略LOCAL_REMOTE
retryMethod重试处理入口RetryAnnotationMethod
idempotentId幂等id生成器SimpleIdempotentIdGenerate
retryCompleteCallback服务端重试完成(重试成功、重试到达最大次数)回调客户端SimpleRetryCompleteCallback
isThrowException本地重试完成后是否抛出异常true
bizNo标识具有业务特点的值比如订单号、物流编号等,可以根据具体的业务场景生成,具体的生产规则参考:Spi扩展点
localTimes本地重试次数 次数必须大于等于13
localInterval本地重试间隔时间(s)2
timeout同步(async:false)上报数据需要配置超时时间60 * 1000
unit超时时间单位TimeUnit.MILLISECONDS
forceReport是否强制上报数据到服务端false
async是否异步上报数据到服务端true
propagationREQUIRED: 当设置为REQUIRED时,如果当前重试存在,就加入到当前重试中,即外部入口触发重试 如果当前重试不存在,就创建一个新的重试任务。 REQUIRES_NEW:当设置为REQUIRES_NEW时, 无论当前重试任务是否存在,都会一个新的重试任务。REQUIRED

可以看到我们能够自定义的参数还是很多的,那么接下来我将用分组的形式来跟大家讲解这些参数。