#again #fail #retry #async #sync

tryagain

如果失败则再次尝试事物的库

1 个不稳定版本

0.1.0 2021年1月23日

#10 in #again

Unlicense

11KB
159 代码行

tryagain

如果失败则再次尝试事物的库。


lib.rs:

一个用于再次尝试事物的crate。

tryagain 是一个受 backoff 启发的crate,它提供了一种更简单的方式来取消重试尝试,并使用非阻塞的异步实现。

同步示例

fn fails() -> Result<(), i32> {
    Err(0)
}

// Will never resolve into, will spin forever.
let value = tryagain::retry(ImmediateBackoff, fails);

异步示例

async fn fails() -> Result<(), i32> {
    Err(0)
}

// Will never resolve into, will spin forever.
let value = tryagain::future::retry(ImmediateBackoff, fails).await;

依赖项

~0–13MB
~114K SLoC