#exponential-backoff #retry #tokio #future #exponential #backoff #behavior

tokio-retry

为futures/tokio提供可扩展的异步重试行为

9个版本

0.3.0 2021年3月6日
0.2.0 2018年4月7日
0.1.1 2017年10月27日
0.1.0 2017年4月17日
0.0.5 2017年3月11日

#83 in 异步

Download history 127603/week @ 2023-12-13 97169/week @ 2023-12-20 67053/week @ 2023-12-27 122821/week @ 2024-01-03 131173/week @ 2024-01-10 147621/week @ 2024-01-17 148696/week @ 2024-01-24 134621/week @ 2024-01-31 143046/week @ 2024-02-07 148687/week @ 2024-02-14 147864/week @ 2024-02-21 148647/week @ 2024-02-28 143380/week @ 2024-03-06 151121/week @ 2024-03-13 144565/week @ 2024-03-20 122475/week @ 2024-03-27

590,620 每月下载量
用于 247 个crate (56 直接)

MIT 许可证

20KB
413

tokio-retry

tokio库生态系统提供可扩展的异步重试行为。

Build Status dependency status

文档

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
tokio-retry = "0.3"

示例

use tokio_retry::Retry;
use tokio_retry::strategy::{ExponentialBackoff, jitter};

async fn action() -> Result<u64, ()> {
    // do some real-world stuff here...
    Err(())
}

#[tokio::main]
async fn main() -> Result<(), ()> {
    let retry_strategy = ExponentialBackoff::from_millis(10)
        .map(jitter) // add jitter to delays
        .take(3);    // limit to 3 retries

    let result = Retry::spawn(retry_strategy, action).await?;

    Ok(())
}

依赖关系

~2.6–4MB
~69K SLoC