Annotation Interface Retryable


@Target(METHOD) @Retention(RUNTIME) @Documented public @interface Retryable
重试接入入口
作者:
www.byteblogs.com
  • 必需元素概要

    所需元素
    修饰符和类型
    必需的元素
    说明
    场景值
  • 可选元素概要

    可选元素
    修饰符和类型
    可选元素
    说明
    boolean
    异步上报数据到服务端
    用于标识具有业务特点的值, 比如订单号、物流编号等,可以根据具体的业务场景生成,生成规则采用通用成熟的Spel表达式进行解析 see: ...
    Class<? extends Throwable>[]
    排除的异常
    幂等id生成器 同一个组的同一个场景下只会存在一个相同的idempotentId并且状态为'重试中'的任务, 若存在相同的则上报服务后会被幂等处理 比如: 组: AGroup 场景: BScene 时刻1: 上报一个异常 idempotentId: A1 状态为重试中 时刻2: 上报一个异常 idempotentId: A2 状态为重试中,可以上报成功,此时存在两个重试任务 时刻3: 上报一个异常 idempotentId: A1 不会新增一个重试任务,会被幂等处理 时刻4: idempotentId: A1 重试完成, 状态为已完成 时刻5: 上报一个异常 idempotentId: A1 状态为重试中, 新增一条重试任务
    Class<? extends Throwable>[]
    包含的异常
    boolean
    本地重试完成后是否抛出异常 如果不抛出异常,则调用需要重试方法的方法则感知不到异常信息 比如: A->B->C->D->E D需要重试 若配置D不抛异常,则A->B->C无法感知,若有事物则无法回滚
    int
    本地重试间隔时间(s)
    int
    本地重试次数 次数必须大于等于1
    重试传播机制
    服务端重试完成(重试成功、重试到达最大次数)回调客户端
    重试处理入口,默认为原方法
    重试策略
    long
    同步(async:false)上报数据需要配置超时时间
    超时时间单位
  • 元素详细资料

    • scene

      String scene
      场景值
    • include

      Class<? extends Throwable>[] include
      包含的异常
      默认值:
      {}
    • exclude

      Class<? extends Throwable>[] 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