#circuit-breaker #bb8 #thin #wapper #async #captilites #failsafe-rs

bb8-failsafe

为 bb8 提供电路断路器功能的 failsafe-rs 轻量级包装

15 个版本

0.1.14 2024 年 8 月 1 日
0.1.13 2024 年 7 月 8 日
0.1.12 2024 年 6 月 15 日
0.1.9 2024 年 3 月 25 日
0.1.1 2022 年 5 月 23 日

#2#bb8

Download history • Rust 包仓库 118/week @ 2024-05-27 • Rust 包仓库 70/week @ 2024-06-03 • Rust 包仓库 178/week @ 2024-06-10 • Rust 包仓库 36/week @ 2024-06-17 • Rust 包仓库 16/week @ 2024-06-24 • Rust 包仓库 37/week @ 2024-07-01 • Rust 包仓库 171/week @ 2024-07-08 • Rust 包仓库 19/week @ 2024-07-15 • Rust 包仓库 13/week @ 2024-07-22 • Rust 包仓库 129/week @ 2024-07-29 • Rust 包仓库

每月 351 次下载

MIT 许可证

7KB
114

bb8-failsafe

为 bb8 提供电路断路器功能的 failsafe-rs 轻量级包装


lib.rs:

为 bb8 提供电路断路器功能的 failsafe-rs 轻量级包装。

示例

使用一个虚构的 "foodb" 数据库。

#[tokio::main]
async fn main() {
    let manager = bb8_foodb::FooConnectionManager::new("localhost:1234");
    let circuitbreaker = bb8_failsafe::failsafe::Config::new().build();
    let safemanager = bb8_failsafe::FailsafeConnectionManager::new(manager, circuitbreaker);
    let pool = bb8::Pool::builder().build(safemanager).await.unwrap();

    for _ in 0..20 {
        let pool = pool.clone();
        tokio::spawn(async move {
            let conn = pool.get().await.unwrap();
            // use the connection
            // it will be returned to the pool when it falls out of scope.
        });
    }
}

依赖项

~4–11MB
~95K SLoC