ThreadPoolTaskScheduler
|
ThreadPoolTaskScheduler is a wrapper around JSE ScheduledThreadPoolExecutor. Following example shows how ThreadPoolTaskScheduler can be used to schedule tasks at fixed rate |
Example
package com.logicbig.example;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import java.time.LocalTime;
public class ThreadPoolTaskSchedulerExample {
public static void main(String[] args) throws InterruptedException {
ThreadPoolTaskScheduler s = new ThreadPoolTaskScheduler();
s.setPoolSize(5);
s.initialize();
for (int i = 0; i < 2; i++) {
int finalI = i;
s.scheduleAtFixedRate(
() -> System.out.printf("Task: %s, Thread: %s, Time: %s%n",
finalI,
Thread.currentThread().getName(),
LocalTime.now()), 1000);
}
Thread.sleep(10000);
//shutting down after 10 sec
s.getScheduledThreadPoolExecutor().shutdownNow();
}
}
OutputTask: 0, Thread: ThreadPoolTaskScheduler-2, Time: 20:39:06.504676100 Task: 1, Thread: ThreadPoolTaskScheduler-1, Time: 20:39:06.504676100 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 20:39:07.503680800 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 20:39:07.505095500 Task: 1, Thread: ThreadPoolTaskScheduler-4, Time: 20:39:08.575560400 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 20:39:08.575560400 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 20:39:09.503270500 Task: 1, Thread: ThreadPoolTaskScheduler-5, Time: 20:39:09.506271200 Task: 0, Thread: ThreadPoolTaskScheduler-4, Time: 20:39:10.503615300 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 20:39:10.504616900 Task: 1, Thread: ThreadPoolTaskScheduler-2, Time: 20:39:11.509843800 Task: 0, Thread: ThreadPoolTaskScheduler-1, Time: 20:39:11.509843800 Task: 0, Thread: ThreadPoolTaskScheduler-1, Time: 20:39:12.503454400 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 20:39:12.504939200 Task: 0, Thread: ThreadPoolTaskScheduler-5, Time: 20:39:13.504138 Task: 1, Thread: ThreadPoolTaskScheduler-5, Time: 20:39:13.504138 Task: 0, Thread: ThreadPoolTaskScheduler-4, Time: 20:39:14.503608 Task: 1, Thread: ThreadPoolTaskScheduler-1, Time: 20:39:14.504774600 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 20:39:15.503183100 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 20:39:15.505453700 Task: 0, Thread: ThreadPoolTaskScheduler-5, Time: 20:39:16.503429500 Task: 1, Thread: ThreadPoolTaskScheduler-4, Time: 20:39:16.504646
Example ProjectDependencies and Technologies Used: - spring-context 6.2.12 (Spring Context)
Version Compatibility: 4.0.0.RELEASE - 6.2.12 Version compatibilities of spring-context with this example: Versions in green have been tested.
- JDK 25
- Maven 3.9.11
|
|