Spring: служба Task Executor с базой данных на основе даты и времени - PullRequest
0 голосов
/ 01 октября 2019

Я хочу реализовать службу Executor для задач, которая начнет работать через некоторое время, например, давайте предположим, что у меня есть эти задачи;

task1 = new Task(1,10)   //Task with id 1 and will start after 10 min   
task2 = new Task(2,15)   //Task with id 2 and will start after 15 min   
task3 = new Task(3,5)    //Task with id 3 and will start after 5 min   
task4 = new Task(4,30)   //Task with id 4 and will start after 30 min   

когда я отправляю все из них в службу executor, ядолжен получить следующий результат:

(через 5 минут):
... задача 3 запущена ...
(через 10 минут)
... задача 1 запущена. ..
(через 15 минут)
... задание 2 выполняется ...
(через 30 минут)
... задание 4 выполняется ...

Я мог бы узнать, как я могу это реализовать. Можете ли вы помочь мне об этом?

1 Ответ

2 голосов
/ 01 октября 2019

Взгляните на ScheduledThreadPoolExecutor . Вот пример, показывающий, как запланировать запуск потока через 5 минут.

ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
Thread thread = new Thread();
executor.schedule(thread, 5, TimeUnit.MINUTES);
...