Вам не нужно смотреть за пределы JDK.Вы можете использовать java.util.concurrent.ScheduledExecutorService
, чтобы сделать вызов после определенной задержки и в отдельном потоке.Чтобы использовать это, вам нужно реализовать java.util.concurrent.Callable
или java.lang.Runnable
для кода, который вызывает API.
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
Callable apiCaller = ...;
Чтобы сделать вызов таким, чтобы он выполнялся после определенной задержки, вы отправляете его следующим образом:
service.schedule(apiCaller, delay, TimeUnit.MILLISECONDS);
Чтобы получить случайную задержку, вам просто нужно использовать java.util.Random
.
Random random = new Random();
Случайный может предоставить вам ограниченное целое число.Поэтому, если вы передадите ему приемлемый диапазон, а затем добавите, добавьте минимум, и вы получите случайное число между минимальным и максимальным значением, которое вы хотите.
int minimumDelay = 250;
int maximumDelay = 350;
int delay = random.nextInt(maximumDelay - minimumDelay) + minimumDelay;