RetryPolicy class

重试策略配置类

用于配置请求重试行为,支持固定间隔、指数退避、指数退避+抖动三种策略。

使用示例

// 固定间隔重试(向后兼容)
RxNet.get()
  .setPath("/api/data")
  .setRetryCount(3, interval: Duration(seconds: 2))
  .request();

// 指数退避重试
RxNet.get()
  .setPath("/api/data")
  .setRetryPolicy(RetryPolicy(
    maxRetries: 3,
    strategy: RetryStrategy.exponentialBackoff,
    baseInterval: Duration(seconds: 1),
  ))
  .request();

// 指数退避 + 抖动重试
RxNet.get()
  .setPath("/api/data")
  .setRetryPolicy(RetryPolicy(
    maxRetries: 5,
    strategy: RetryStrategy.exponentialBackoffWithJitter,
    baseInterval: Duration(seconds: 1),
    maxInterval: Duration(seconds: 30),
  ))
  .request();

Constructors

RetryPolicy({int maxRetries = 3, RetryStrategy strategy = RetryStrategy.fixed, Duration baseInterval = const Duration(seconds: 1), Duration? maxInterval, double backoffMultiplier = 2.0})
const
RetryPolicy.exponentialBackoff({int maxRetries = 3, Duration baseInterval = const Duration(seconds: 1), Duration? maxInterval, double backoffMultiplier = 2.0})
指数退避重试的工厂方法
factory
RetryPolicy.exponentialBackoffWithJitter({int maxRetries = 5, Duration baseInterval = const Duration(seconds: 1), Duration? maxInterval, double backoffMultiplier = 2.0})
指数退避 + 抖动重试的工厂方法
factory
RetryPolicy.fixed({int maxRetries = 3, Duration interval = const Duration(seconds: 1)})
固定间隔重试的工厂方法(兼容旧 API 行为)
factory

Properties

backoffMultiplier double
退避倍数(默认 2.0)
final
baseInterval Duration
基础间隔时间(固定间隔使用,指数退避的基础值)
final
hashCode int
The hash code for this object.
no setterinherited
maxInterval Duration?
最大间隔时间(仅指数退避策略使用,防止间隔过长)
final
maxRetries int
最大重试次数
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
strategy RetryStrategy
重试策略
final

Methods

getDelay(int attempt) Duration
计算第 attempt 次重试的延迟时间(从 0 开始计数)
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited