Files
Notes/notes-service/vendor/backon/src/docs/examples/sqlx.md
T
2026-08-01 16:11:49 +03:00

487 B

Retry sqlx operations.

use backon::Retryable;
use anyhow::Result;
use backon::ExponentialBuilder;

#[tokio::main]
async fn main() -> Result<()> {
    let pool = sqlx::sqlite::SqlitePoolOptions::new()
        .max_connections(5)
        .connect("sqlite::memory:")
        .await?;

    let row: (i64,) = (|| sqlx::query_as("SELECT $1").bind(150_i64).fetch_one(&pool))
        .retry(ExponentialBuilder::default())
        .await?;

    assert_eq!(row.0, 150);

    Ok(())
}