Package org.springframework.scheduling

# Interface SchedulingAwareRunnable

All Superinterfaces:
  `Runnable`

All Known Implementing Classes:
  `ScheduledMethodRunnable`

public interface SchedulingAwareRunnable extends Runnable
Extension of the `Runnable` interface, adding special callbacks for long-running operations.

Scheduling-capable TaskExecutors are encouraged to check a submitted Runnable, detecting whether this interface is implemented and reacting as appropriately as they are able to.

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

## Method Summary

Modifier and Type
Method
Description
`default String`
`getQualifier()`
Return a qualifier associated with this Runnable.
`default boolean`
`isLongLived()`
Return whether the Runnable's operation is long-lived (`true`) versus short-lived (`false`).

### Methods inherited from interface java.lang.Runnable

`run`

## Method Details

### isLongLived

default boolean isLongLived()
Return whether the Runnable's operation is long-lived (`true`) versus short-lived (`false`).

In the former case, the task will not allocate a thread from the thread pool (if any) but rather be considered as long-running background thread.

This should be considered a hint. Of course TaskExecutor implementations are free to ignore this flag and the SchedulingAwareRunnable interface overall.

The default implementation returns `false`, as of 6.1.

### getQualifier

@Nullable default String getQualifier()
Return a qualifier associated with this Runnable.

The default implementation returns `null`.

May be used for custom purposes depending on the scheduler implementation. `TaskSchedulerRouter` introspects this qualifier in order to determine the target scheduler to be used for a given Runnable, matching the qualifier value (or the bean name) of a specific `TaskScheduler` or `ScheduledExecutorService` bean definition.

Since:
  6.1
See Also:
  - `Scheduled.scheduler()`