Как получить определенную задачу futureTask из списка ScheduledFuture (ScheduledExecutorService) и обновить время? - PullRequest
0 голосов
/ 19 января 2020

Ниже приведена реализация кода ... где мне нужно планировать задачи с произвольным интервалом и обновлять время выполнения конкретных задач:

class Task implements Callable<String> 
{
   private final String name;
   public Task(String name) {
        this.name = name;
   }
   @Override
   public String call() throws Exception {
      return "Task [" + name + "] executed on : " + LocalDateTime.now().toString();
    }
}
public class Main 
{
    public static void main(String[] args) throws InterruptedException 
    {
                 ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);          
                 List<ScheduledFuture<String>> results = new ArrayList<ScheduledFuture<String>>();
                        for (int i = 1; i <= 5; i++) 
                        {
                            Task task = new Task("Task-" + i);
                            ScheduledFuture<String> result = executor.schedule(task, i*2, TimeUnit.SECONDS);
                            results.add(result);
                        }    
                        executor.shutdown();     
                        try { 
                            executor.awaitTermination(1, TimeUnit.DAYS);              
                            for(ScheduledFuture<String> result : results) {
                                System.out.println(result.get());
                            }      
                        } catch (Exception e) { 
                            e.printStackTrace(); 
                        }
...