У меня есть задача, которую я хочу выполнить, где задержка будет постоянно меняться (т.е. - без фиксированного интервала).
Мне нужен поток и бесконечные циклы, которые находят значение задержки, вводят ее в исполнитель, а затем, как только эта задача завершается, находят новое значение задержки и т. Д.
Моя текущая «базовая» реализация:
long targetTime = findNextTime()/1000;
long currentTime = System.curentTimeMillis()/1000;
delay = targetTime - currentTime;
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3);
Runnable task = new Runnable() {
public void run() {
System.out.println("Test Task");
ScheduledFuture<?> future = scheduler.schedule(this, delay, TimeUnit.SECONDS);
}
}
Как мне найти новую задержку и повторять эту задачу?
Должен ли я сделать опрос на future
, а затем выполнить рекурсивный цикл? Я пробую это, и я получаю ошибку.