diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/SimpleAsyncTaskScheduler.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/SimpleAsyncTaskScheduler.java index 027d1f6f4f..d585470e4c 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/SimpleAsyncTaskScheduler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/SimpleAsyncTaskScheduler.java @@ -78,7 +78,9 @@ import org.springframework.util.ErrorHandler; * but rather just the hand-off to an execution thread. As a consequence, * a {@link ScheduledFuture} handle (e.g. from {@link #schedule(Runnable, Instant)}) * represents that hand-off rather than the actual completion of the provided task - * (or series of repeated tasks). + * (or series of repeated tasks). Also, this scheduler participates in lifecycle + * management to a limited degree only, stopping trigger firing and fixed-delay + * task execution but not stopping the execution of handed-off tasks. * *

As an alternative to the built-in thread-per-task capability, this scheduler * can also be configured with a separate target executor for scheduled task diff --git a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java index 4206695f0b..8412e6c4af 100644 --- a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java +++ b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java @@ -46,6 +46,11 @@ import org.springframework.util.concurrent.ListenableFutureTask; * executing a large number of short-lived tasks. Alternatively, on JDK 21, * consider setting {@link #setVirtualThreads} to {@code true}. * + *

NOTE: This executor does not participate in context-level lifecycle + * management. Tasks on handed-off execution threads cannot be centrally + * stopped and restarted; if such tight lifecycle management is necessary, + * consider a common {@code ThreadPoolTaskExecutor} setup instead. + * * @author Juergen Hoeller * @since 2.0 * @see #setVirtualThreads