#tokio #retry #timeout #async #utility

retry-strategy

基于Tokio的更好的异步重试工具

2个不稳定版本

0.2.0 2023年10月8日
0.1.0 2023年4月16日

#1181 in 异步

MIT 许可证

17KB
412 代码行

retry-strategy

基于Tokio的更好的异步重试工具。原始的 Tokio::timeout 函数在单个超时后结束,但单个超时可能会受到随机因素的影响。例如,建立连接或发起HTTP请求通常需要三次超时重试。如果所有重试都失败,则视为最终超时。

Retry-strategy 提供了丰富且简单的超时设置,允许您轻松灵活地设置重试次数、每次超时的时间长度,以及更复杂的策略。我们希望它能给您带来便利。

安装

将依赖项添加到您的 Cargo.toml

[dependencies]
retry-strategy = "0.2"

示例

use retry_strategy::prelude::*;

let tcp_connection = retry(
    vec![100.ms(), 200.ms(), 300.ms()], 
    |_n| TcpStream::connect("127.0.0.1:8080")
).await?;

依赖项

~3–12MB
~127K SLoC