Annotation Interface Retryable
重试接入入口
- 作者:
- www.byteblogs.com
-
必需元素概要
所需元素 -
可选元素概要
可选元素修饰符和类型可选元素说明boolean异步上报数据到服务端用于标识具有业务特点的值, 比如订单号、物流编号等,可以根据具体的业务场景生成,生成规则采用通用成熟的Spel表达式进行解析 see: ...排除的异常Class<? extends IdempotentIdGenerate>幂等id生成器 同一个组的同一个场景下只会存在一个相同的idempotentId并且状态为'重试中'的任务, 若存在相同的则上报服务后会被幂等处理 比如: 组: AGroup 场景: BScene 时刻1: 上报一个异常 idempotentId: A1 状态为重试中 时刻2: 上报一个异常 idempotentId: A2 状态为重试中,可以上报成功,此时存在两个重试任务 时刻3: 上报一个异常 idempotentId: A1 不会新增一个重试任务,会被幂等处理 时刻4: idempotentId: A1 重试完成, 状态为已完成 时刻5: 上报一个异常 idempotentId: A1 状态为重试中, 新增一条重试任务包含的异常boolean本地重试完成后是否抛出异常 如果不抛出异常,则调用需要重试方法的方法则感知不到异常信息 比如: A->B->C->D->E D需要重试 若配置D不抛异常,则A->B->C无法感知,若有事物则无法回滚int本地重试间隔时间(s)int本地重试次数 次数必须大于等于1重试传播机制Class<? extends RetryCompleteCallback>服务端重试完成(重试成功、重试到达最大次数)回调客户端Class<? extends ExecutorMethod>重试处理入口,默认为原方法重试策略long同步(async:false)上报数据需要配置超时时间超时时间单位
-
元素详细资料
-
scene
String scene场景值
-
-
-
include
包含的异常- 默认值:
- {}
-
exclude
排除的异常- 默认值:
- {}
-
retryStrategy
RetryType retryStrategy重试策略- 默认值:
- LOCAL_REMOTE
-
retryMethod
Class<? extends ExecutorMethod> retryMethod重试处理入口,默认为原方法- 默认值:
- com.aizuda.easy.retry.client.core.strategy.ExecutorAnnotationMethod.class
-
idempotentId
Class<? extends IdempotentIdGenerate> idempotentId幂等id生成器 同一个组的同一个场景下只会存在一个相同的idempotentId并且状态为'重试中'的任务, 若存在相同的则上报服务后会被幂等处理 比如: 组: AGroup 场景: BScene 时刻1: 上报一个异常 idempotentId: A1 状态为重试中 时刻2: 上报一个异常 idempotentId: A2 状态为重试中,可以上报成功,此时存在两个重试任务 时刻3: 上报一个异常 idempotentId: A1 不会新增一个重试任务,会被幂等处理 时刻4: idempotentId: A1 重试完成, 状态为已完成 时刻5: 上报一个异常 idempotentId: A1 状态为重试中, 新增一条重试任务默认的idempotentId生成器
SimpleIdempotentIdGenerate对所有参数进行MD5- 返回:
- idempotentId
- 默认值:
- com.aizuda.easy.retry.client.core.generator.SimpleIdempotentIdGenerate.class
-
retryCompleteCallback
Class<? extends RetryCompleteCallback> retryCompleteCallback服务端重试完成(重试成功、重试到达最大次数)回调客户端- 默认值:
- com.aizuda.easy.retry.client.core.callback.SimpleRetryCompleteCallback.class
-
bizNo
String bizNo用于标识具有业务特点的值, 比如订单号、物流编号等,可以根据具体的业务场景生成,生成规则采用通用成熟的Spel表达式进行解析 see: ...- 默认值:
- ""
-
localTimes
int localTimes本地重试次数 次数必须大于等于1- 默认值:
- 3
-
localInterval
int localInterval本地重试间隔时间(s)- 默认值:
- 2
-
isThrowException
boolean isThrowException本地重试完成后是否抛出异常 如果不抛出异常,则调用需要重试方法的方法则感知不到异常信息 比如: A->B->C->D->E D需要重试 若配置D不抛异常,则A->B->C无法感知,若有事物则无法回滚- 返回:
- true-抛出 false-不抛出
- 默认值:
- true
-
async
boolean async异步上报数据到服务端- 返回:
- boolean
- 默认值:
- true
-
timeout
long timeout同步(async:false)上报数据需要配置超时时间- 返回:
- 超时时间
- 默认值:
- 60000L
-
unit
TimeUnit unit超时时间单位- 返回:
- TimeUnit
- 默认值:
- MILLISECONDS
-
propagation
Propagation propagation重试传播机制- 返回:
- Propagation
- 默认值:
- REQUIRED
-