Как сделать 10 запросов в секунду для вызовов API, чтобы избежать ограничения скорости внешнего API с использованием Java?

Я делаю сторонние вызовы GET API, которые имеют ограничение скорости запросов 10 в секунду. Как можно успешно управлять HTTP-запросами GET, чтобы избежать ограничения скорости третьей стороны. Я использую Vertx Webclient для выполнения запроса GET.


person Sumit Sawant    schedule 02.11.2020    source источник


Ответы (1)


два способа сделать это с CompletableFutures:

  1. запускайте 10 CompletableFuture, которые делают ваши запросы, а затем отправляют поток в спящий режим на 1 с - см. методы runAsync() и supplyAsync().
  2. выполнить 1 CompletableFuture и засыпать 1/10 секунды.

Если вы сохраните CompletableFutures в списке / карте (что лучше всего подходит для вашей ситуации), вы сможете .get() ответы позже, когда вам понадобится доступ к результатам.

person Rob Evans    schedule 02.11.2020
comment
ты про основную ветку? Тогда открутите новый, чтобы основному не нужно было спать? - person Rob Evans; 02.11.2020