Я делаю сторонние вызовы GET API, которые имеют ограничение скорости запросов 10 в секунду. Как можно успешно управлять HTTP-запросами GET, чтобы избежать ограничения скорости третьей стороны. Я использую Vertx Webclient для выполнения запроса GET.
Как сделать 10 запросов в секунду для вызовов API, чтобы избежать ограничения скорости внешнего API с использованием Java?
Ответы (1)
два способа сделать это с CompletableFutures:
- запускайте 10
CompletableFuture
, которые делают ваши запросы, а затем отправляют поток в спящий режим на 1 с - см. методыrunAsync()
иsupplyAsync()
. - выполнить 1
CompletableFuture
и засыпать 1/10 секунды.
Если вы сохраните CompletableFutures в списке / карте (что лучше всего подходит для вашей ситуации), вы сможете .get()
ответы позже, когда вам понадобится доступ к результатам.
person
Rob Evans
schedule
02.11.2020
ты про основную ветку? Тогда открутите новый, чтобы основному не нужно было спать?
- person Rob Evans; 02.11.2020