Spring introduced SimpleAsyncTaskScheduler in version 6.1, as a simple implementation of Spring's TaskScheduler interface, using a single scheduler thread and executing every scheduled task in an individual separate thread.
Example
package com.logicbig.example;
import org.springframework.scheduling.concurrent.SimpleAsyncTaskScheduler;
import java.time.Duration;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
public class SimpleAsyncTaskSchedulerExample {
public static void main(String[] args) throws InterruptedException {
SimpleAsyncTaskScheduler scheduler = new SimpleAsyncTaskScheduler();
scheduler.scheduleAtFixedRate(
() -> System.out.printf("Thread: %s, Time: %s%n",
Thread.currentThread().getName(),
LocalTime.now())
, Duration.of(1, ChronoUnit.SECONDS));
Thread.sleep(10000);
//Terminating after 10 seconds
scheduler.close();
}
}
OutputThread: SimpleAsyncTaskScheduler-2, Time: 16:04:45.668219800 Thread: SimpleAsyncTaskScheduler-3, Time: 16:04:46.668389200 Thread: SimpleAsyncTaskScheduler-4, Time: 16:04:47.665468100 Thread: SimpleAsyncTaskScheduler-5, Time: 16:04:48.674775200 Thread: SimpleAsyncTaskScheduler-6, Time: 16:04:49.673371700 Thread: SimpleAsyncTaskScheduler-7, Time: 16:04:50.669166 Thread: SimpleAsyncTaskScheduler-8, Time: 16:04:51.667201800 Thread: SimpleAsyncTaskScheduler-9, Time: 16:04:52.677053600 Thread: SimpleAsyncTaskScheduler-10, Time: 16:04:53.671418100 Thread: SimpleAsyncTaskScheduler-11, Time: 16:04:54.665984700 Thread: SimpleAsyncTaskScheduler-12, Time: 16:04:55.679457700
Example ProjectDependencies and Technologies Used: - spring-context 6.2.12 (Spring Context)
Version Compatibility: 6.1.0 - 6.2.12 Version compatibilities of spring-context with this example:
- 6.1.0
- 6.1.1
- 6.1.2
- 6.1.3
- 6.1.4
- 6.1.5
- 6.1.6
- 6.1.7
- 6.1.8
- 6.1.9
- 6.1.10
- 6.1.11
- 6.1.12
- 6.1.13
- 6.1.14
- 6.1.15
- 6.1.16
- 6.1.17
- 6.1.18
- 6.1.19
- 6.1.20
- 6.1.21
- 6.2.0
- 6.2.1
- 6.2.2
- 6.2.3
- 6.2.4
- 6.2.5
- 6.2.6
- 6.2.7
- 6.2.8
- 6.2.9
- 6.2.10
- 6.2.11
- 6.2.12
Versions in green have been tested.
- JDK 25
- Maven 3.9.11
|
|