Record Class RetryPolicy

java.lang.Object
java.lang.Record
com.midi.his.sdk.config.RetryPolicy
记录组件:
maxAttempts - 总尝试次数,1 表示不重试,最小为 1
backoff - 首次重试前的等待毫秒数,后续按 2 的幂递增
jitterMillis - 等待时间上叠加的随机抖动上限,用于错开多线程重试

public record RetryPolicy(int maxAttempts, long backoff, long jitterMillis) extends Record
重试策略。

只对"确定没有产生业务副作用"的失败重试:连接/读超时、连接被重置、HTTP 5xx 与 408/429。 平台已返回业务错误码(见 RetCode)时一律不重试,避免推送重复投递。

  • 构造器详细资料

    • RetryPolicy

      public RetryPolicy(int maxAttempts, long backoff, long jitterMillis)
      创建 RetryPolicy 记录的实例。
      参数:
      maxAttempts - maxAttempts 记录组件的值
      backoff - backoff 记录组件的值
      jitterMillis - jitterMillis 记录组件的值
  • 方法详细资料

    • defaults

      public static RetryPolicy defaults()
      默认策略:共 3 次尝试、500ms 起退避、100ms 抖动。
    • none

      public static RetryPolicy none()
      不重试。
    • delayMillis

      public long delayMillis(int attempt)
      计算第 attempt 次失败后的等待时间(指数退避 + 抖动)。
      参数:
      attempt - 已经失败的次数,从 1 开始
      返回:
      需要 sleep 的毫秒数
    • toString

      public final String toString()
      返回此记录的字符串表示形式。此表示形式包含类型的名称,后跟每个记录组件的名称和值。
      指定者:
      toString 在类中 Record
      返回:
      此对象的字符串表示形式
    • hashCode

      public final int hashCode()
      返回此对象的哈希代码值。此值派生自每个记录组件的哈希代码。
      指定者:
      hashCode 在类中 Record
      返回:
      此对象的哈希代码值
    • equals

      public final boolean equals(Object o)
      指示某个其他对象是否“等于”此对象。如果两个对象属于同一个类,而且所有记录组件都相等,则这两个对象相等。 此记录中的所有组件都使用 '==' 进行比较。
      指定者:
      equals 在类中 Record
      参数:
      o - 要与之进行比较的对象
      返回:
      如果此对象与 o 参数相同,则为 true;否则为 false。
    • maxAttempts

      public int maxAttempts()
      返回 maxAttempts 记录组件的值。
      返回:
      maxAttempts 记录组件的值
    • backoff

      public long backoff()
      返回 backoff 记录组件的值。
      返回:
      backoff 记录组件的值
    • jitterMillis

      public long jitterMillis()
      返回 jitterMillis 记录组件的值。
      返回:
      jitterMillis 记录组件的值