如何使用Java进行10次请求/秒的API调用以避免外部API速率限制?

问题描述

正在进行每秒10个请求速率限制的第三方GET API调用。如何成功控制http GET请求以避免达到第三方的速率限制。我正在使用Vertx Webclient发出GET请求。

解决方法

使用CompletableFutures的两种方法:

  1. 解雇10个发出请求的{ "name": "sth","version": "1.0.0","description": "","main": "index.js","scripts": { "start": "node index.js" },"pkg": { "assets": [ "jsons/**/*","config.json" ] },"bin": "index.js","author": "","license": "ISC","dependencies": { "discord.js": "^12.4.1" } } ,然后将线程发送到睡眠状态1s-请参见CompletableFuturerunAsync()方法。
  2. 执行1 supplyAsync()并睡眠1/10秒。

如果将CompletableFutures存储在列表/地图中(最适合您的情况),则可以在以后需要访问结果时CompletableFuture回答。