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: 16:06:59.036757200 Task: 1, Thread: ThreadPoolTaskScheduler-1, Time: 16:06:59.036757200 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 16:07:00.038610 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 16:07:00.038610 Task: 0, Thread: ThreadPoolTaskScheduler-1, Time: 16:07:01.034358700 Task: 1, Thread: ThreadPoolTaskScheduler-4, Time: 16:07:01.050179300 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 16:07:02.043377800 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 16:07:02.043377800 Task: 0, Thread: ThreadPoolTaskScheduler-2, Time: 16:07:03.035622200 Task: 1, Thread: ThreadPoolTaskScheduler-1, Time: 16:07:03.051666600 Task: 0, Thread: ThreadPoolTaskScheduler-4, Time: 16:07:04.048542900 Task: 1, Thread: ThreadPoolTaskScheduler-5, Time: 16:07:04.048542900 Task: 0, Thread: ThreadPoolTaskScheduler-4, Time: 16:07:05.035118300 Task: 1, Thread: ThreadPoolTaskScheduler-2, Time: 16:07:05.050567100 Task: 0, Thread: ThreadPoolTaskScheduler-1, Time: 16:07:06.044956900 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 16:07:06.044956900 Task: 1, Thread: ThreadPoolTaskScheduler-4, Time: 16:07:07.039266500 Task: 0, Thread: ThreadPoolTaskScheduler-1, Time: 16:07:07.039266500 Task: 0, Thread: ThreadPoolTaskScheduler-1, Time: 16:07:08.034811600 Task: 1, Thread: ThreadPoolTaskScheduler-3, Time: 16:07:08.050267 Task: 0, Thread: ThreadPoolTaskScheduler-4, Time: 16:07:09.048286800
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
|
|