Будущее будущего на Яве - PullRequest
0 голосов
/ 21 марта 2019

У меня есть метод doAsync, который возвращает мне будущее.
Я хочу запустить этот метод в будущем, поэтому я использую ScheduledExecutorService.

Я хотел бы иметь Future, который завершается, когда метод runAsync() завершает работу.

В основном мой код выглядит так:

public Future scheduleAsyncTask(int delay){
    return this.scheduledExecutorService.schedule(()->runAsync(),delay,TimeUnit.MILLISECONDS); 
}

Это не работает должным образом, поскольку возвращаемое будущее завершается, когда запускается запланированное задание, но не когда оно завершается.

Как мне решить мою проблему?

1 Ответ

0 голосов
/ 21 марта 2019
return scheduler.schedule(() -> runAsync().get(delay, TimeUnit.MILLISECONDS), delay, TimeUnit.MILLISECONDS);
...