An open API service indexing awesome lists of open source software.

https://github.com/srijs/rust-tokio-retry

Extensible, asynchronous retry behaviours for futures/tokio
https://github.com/srijs/rust-tokio-retry

retry rust tokio

Last synced: 6 months ago
JSON representation

Extensible, asynchronous retry behaviours for futures/tokio

Awesome Lists containing this project

README

          

# tokio-retry

Extensible, asynchronous retry behaviours for the ecosystem of [tokio](https://tokio.rs/) libraries.

[![Build Status](https://travis-ci.org/srijs/rust-tokio-retry.svg?branch=master)](https://travis-ci.org/srijs/rust-tokio-retry)
[![crates](http://meritbadge.herokuapp.com/tokio-retry)](https://crates.io/crates/tokio-retry)
[![dependency status](https://deps.rs/repo/github/srijs/rust-tokio-retry/status.svg)](https://deps.rs/repo/github/srijs/rust-tokio-retry)

[Documentation](https://docs.rs/tokio-retry)

## Installation

Add this to your `Cargo.toml`:

```toml
[dependencies]
tokio-retry = "0.3"
```

## Examples

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

async fn action() -> Result {
// 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(())
}
```