|
|
|
|
@@ -1,5 +1,5 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright 2002-2013 the original author or authors.
|
|
|
|
|
* Copyright 2002-2018 the original author or authors.
|
|
|
|
|
*
|
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
|
@@ -42,21 +42,20 @@ import org.springframework.core.task.AsyncTaskExecutor;
|
|
|
|
|
public interface SchedulingTaskExecutor extends AsyncTaskExecutor {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Does this {@code TaskExecutor} prefer short-lived tasks over
|
|
|
|
|
* long-lived tasks?
|
|
|
|
|
* <p>A {@code SchedulingTaskExecutor} implementation can indicate
|
|
|
|
|
* whether it prefers submitted tasks to perform as little work as they
|
|
|
|
|
* can within a single task execution. For example, submitted tasks
|
|
|
|
|
* might break a repeated loop into individual subtasks which submit a
|
|
|
|
|
* follow-up task afterwards (if feasible).
|
|
|
|
|
* <p>This should be considered a hint. Of course {@code TaskExecutor}
|
|
|
|
|
* clients are free to ignore this flag and hence the
|
|
|
|
|
* {@code SchedulingTaskExecutor} interface overall. However, thread
|
|
|
|
|
* pools will usually indicated a preference for short-lived tasks, to be
|
|
|
|
|
* able to perform more fine-grained scheduling.
|
|
|
|
|
* @return {@code true} if this {@code TaskExecutor} prefers
|
|
|
|
|
* short-lived tasks
|
|
|
|
|
* Does this {@code TaskExecutor} prefer short-lived tasks over long-lived tasks?
|
|
|
|
|
* <p>A {@code SchedulingTaskExecutor} implementation can indicate whether it
|
|
|
|
|
* prefers submitted tasks to perform as little work as they can within a single
|
|
|
|
|
* task execution. For example, submitted tasks might break a repeated loop into
|
|
|
|
|
* individual subtasks which submit a follow-up task afterwards (if feasible).
|
|
|
|
|
* <p>This should be considered a hint. Of course {@code TaskExecutor} clients
|
|
|
|
|
* are free to ignore this flag and hence the {@code SchedulingTaskExecutor}
|
|
|
|
|
* interface overall. However, thread pools will usually indicated a preference
|
|
|
|
|
* for short-lived tasks, allowing for more fine-grained scheduling.
|
|
|
|
|
* @return {@code true} if this executor prefers short-lived tasks (the default),
|
|
|
|
|
* {@code false} otherwise (for treatment like a regular {@code TaskExecutor})
|
|
|
|
|
*/
|
|
|
|
|
boolean prefersShortLivedTasks();
|
|
|
|
|
default boolean prefersShortLivedTasks() {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|