如何使用Rust Governor创建每10秒10个请求的RateLimiter?

uinbv5nw  于 2023-06-06  发布在  Go
关注(0)|答案(1)|浏览(132)

在Rust with Governor中有没有一种方法可以为10/10 s创建一个RateLimiter?
您可以创建配额:

let q10 = Quota::with_period(Duration::from_secs(10))
        .unwrap()
        .allow_burst(NonZeroU32::new(10).unwrap());

然而,这只能每10秒补充一个。
而且似乎没有办法每隔几秒就完全补充一个配额,对吗?唯一的方法似乎是每10秒完全更换一次RateLimiter。

cnh2zyt3

cnh2zyt31#

我不相信governor能做你想做的。The ratelimit crate似乎是。

let ratelimiter = Ratelimiter::builder(10, Duration::from_secs(10))
    .max_tokens(10)
    .build()
    .unwrap();

此代码段将创建一个限制器,允许每10秒10个请求,最大突发为10。这意味着您可以快速连续发出10个请求,但必须等待10秒才能发送更多请求。

相关问题