gpt4 book ai didi

java - Google RateLimiter 不适用于计数器

转载 作者:行者123 更新时间:2023-11-29 06:28:06 25 4
gpt4 key购买 nike

我有将调用限制为 100/s 的情况。

我正在考虑使用 Google Guava RateLimiter。我是这样测试的:-

int cps = 100;
RateLimiter limiter = RateLimiter.create(cps);
for(int i=0;i<200;i++) {
limiter.acquire();
System.out.print("\rNumber of records processed = " + i+1);
}

但是代码并没有停在 100 条记录上让 1 秒完成。我做错了什么吗?

最佳答案

RateLimiter 工作正常。问题是你的输出被缓冲了,因为你不是每次都刷新它。通常,标准输出是行缓冲的。所以如果你写了

System.out.println("Number of records processed = " + (i+1));

您会在 100 处看到暂停。但是,您拥有的是:

System.out.print("\r处理的记录数 = "+ i+1);

有两个问题。首先,“\r”不作为换行,不会导致刷新;因此,整个输出都被缓冲并一次性打印到控制台。其次,您需要将 (i+1) 放在括号中。您将 i 附加到字符串,然后将 1 附加到结果字符串。

关于java - Google RateLimiter 不适用于计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46845352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com