Package org.springframework.scheduling

# Interface SchedulingTaskExecutor

All Superinterfaces:
  `org.springframework.core.task.AsyncTaskExecutor`, `Executor`, `org.springframework.core.task.TaskExecutor`

All Known Implementing Classes:
  `ConcurrentTaskExecutor`, `ConcurrentTaskScheduler`, `DefaultManagedTaskExecutor`, `DefaultManagedTaskScheduler`, `ThreadPoolTaskExecutor`, `ThreadPoolTaskScheduler`

public interface SchedulingTaskExecutor extends org.springframework.core.task.AsyncTaskExecutor
A `TaskExecutor` extension exposing scheduling characteristics that are relevant to potential task submitters.

Scheduling clients are encouraged to submit `Runnables` that match the exposed preferences of the `TaskExecutor` implementation in use.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  - `SchedulingAwareRunnable`
  - `TaskExecutor`

## Field Summary

### Fields inherited from interface org.springframework.core.task.AsyncTaskExecutor

`TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE`

## Method Summary

Modifier and Type
Method
Description
`default boolean`
`prefersShortLivedTasks()`
Does this `TaskExecutor` prefer short-lived tasks over long-lived tasks?

### Methods inherited from interface org.springframework.core.task.AsyncTaskExecutor

`execute, submit, submit, submitCompletable, submitCompletable`

### Methods inherited from interface org.springframework.core.task.TaskExecutor

`execute`

## Method Details

### prefersShortLivedTasks

default boolean prefersShortLivedTasks()
Does this `TaskExecutor` prefer short-lived tasks over long-lived tasks?

A `SchedulingTaskExecutor` implementation can indicate whether it prefers submitted tasks to perform as little work as it 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).

This should be considered a hint. Of course `TaskExecutor` clients are free to ignore this flag and hence the `SchedulingTaskExecutor` interface overall. However, thread pools will usually indicate a preference for short-lived tasks, allowing for more fine-grained scheduling.

Returns:
  `true` if this executor prefers short-lived tasks (the default), `false` otherwise (for treatment like a regular `TaskExecutor`)