3个版本

0.3.2 2023年3月31日
0.3.1 2023年3月30日
0.3.0 2023年3月28日
0.2.0 2020年8月30日
0.1.0 2020年6月2日

#1218异步

Download history 1098/week @ 2024-03-14 2117/week @ 2024-03-21 2923/week @ 2024-03-28 1990/week @ 2024-04-04 2993/week @ 2024-04-11 2363/week @ 2024-04-18 2796/week @ 2024-04-25 2499/week @ 2024-05-02 2948/week @ 2024-05-09 2354/week @ 2024-05-16 2507/week @ 2024-05-23 2635/week @ 2024-05-30 3204/week @ 2024-06-06 3141/week @ 2024-06-13 2630/week @ 2024-06-20 1495/week @ 2024-06-27

11,118 每月下载量
tokio-utils 中使用

MIT 许可证

18KB
277 代码行

Async Throttle

github crates.io docs.rs build status codecov

异步速率限制

本库提供了粗粒度和细粒度的方式来限制异步任务执行的速率。

用法

将其添加到您的 Cargo.toml 中

[dependencies]
async-throttle = "0.3.2"

您可以使用细粒度速率限制器,例如:

#[tokio::main]
async fn main() {
   let period = std::time::Duration::from_secs(5);
   let rate_limiter = MultiRateLimiter::new(period);
    
   // This completes instantly
   rate_limiter.throttle("foo", || computation()).await;

   // This completes instantly
   rate_limiter.throttle("bar", || computation()).await;

   // This takes 5 seconds to complete because the key "foo" is rate limited
   rate_limiter.throttle("foo", || computation()).await;
}

依赖关系

~3–9.5MB
~75K SLoC