作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 spring MVC 的 spring batch 应用程序。在此应用程序中,我必须调用 Google API。 API 有每秒最多 4 个请求的限制。现在我必须从 spring batch 内部调用 google API。所以我有两个问题。
问题 1:如何实现对 Google API 的剩余调用。我知道 Rest Template,但我希望有更好的方法,比如我们在微服务中使用的 feign client。
q2:如何限制每秒调用 4 次。
如果您有任何问题。请告诉我
最佳答案
您可以使用 RateLimiter
限制每秒的 API 调用。在 Guava 中实现了一个
您需要创建 RateLimiter
并告知每秒调用多少次。
final RateLimiter rateLimiter = RateLimiter.create(4.0); // rate is "4 permits per second"
每次要限制时,都需要获得许可。如果使用了所有许可,则等待执行。
rateLimiter.acquire(1);
也可以指定等待许可的超时时间。
关于spring - 如何在 Spring Rest 中实现和限制每秒 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54199734/
我是一名优秀的程序员,十分优秀!