cron, fixedDelay, or fixedRate attributes
must be specified, and additionally an optional initialDelay.
For a one-time task, it is sufficient to just specify an initialDelay.
The annotated method must not accept arguments. It will typically have
a void return type; if not, the returned value will be ignored
when called through the scheduler.
Methods that return a reactive Publisher or a type which can be adapted
to Publisher by the default ReactiveAdapterRegistry are supported.
The Publisher must support multiple subsequent subscriptions. The returned
Publisher is only produced once, and the scheduling infrastructure then
periodically subscribes to it according to configuration. Values emitted by
the publisher are ignored. Errors are logged at WARN level, which
doesn't prevent further iterations. If a fixed delay is configured, the
subscription is blocked in order to respect the fixed delay semantics.
Kotlin suspending functions are also supported, provided the coroutine-reactor
bridge (kotlinx.coroutine.reactor) is present at runtime. This bridge is
used to adapt the suspending function to a Publisher which is treated
the same way as in the reactive method case (see above).
Processing of @Scheduled annotations is performed by registering a
ScheduledAnnotationBeanPostProcessor. This can be done manually or,
more conveniently, through the <task:annotation-driven/> XML element
or @EnableScheduling annotation.
This annotation can be used as a repeatable annotation. If several scheduled declarations are found on the same method, each of them will be processed independently, with a separate trigger firing for each of them. As a consequence, such co-located schedules may overlap and execute multiple times in parallel or in immediate succession.
This annotation may be used as a meta-annotation to create custom composed annotations with attribute overrides.
EnableScheduling, ScheduledAnnotationBeanPostProcessor, Schedules
| Modifier and Type | Field and Description |
|---|---|
| public static final String | CRON_DISABLED
A special cron expression value that indicates a disabled trigger: -. |
| Modifier and Type | Method and Description |
|---|---|
| public String | Returns: an expression that can be parsed to a cron scheduleA cron-like expression, extending the usual UN*X definition to include triggers on the second, minute, hour, day of month, month, and day of week. |
| public long | Returns: the delayExecute the annotated method with a fixed period between the end of the last invocation and the start of the next. |
| public String | Returns: the delay as a String value — for example, a placeholder or ajava. compliant valueExecute the annotated method with a fixed period between the end of the last invocation and the start of the next. |
| public long | |
| public String | Returns: the period as a String value — for example, a placeholder or ajava. compliant valueExecute the annotated method with a fixed period between invocations. |
| public long | Returns: the initialNumber of units of time to delay before the first execution of a
|
| public String | Returns: the initial delay as a String value — for example, a placeholder or ajava. compliant valueNumber of units of time to delay before the first execution of a
|
| public String | |
| public TimeUnit | Returns: theTimeUnit to useThe |
| public String | Returns: a zone id accepted byjava.,
or an empty String to indicate the scheduler's default time zoneA time zone for which the cron expression will be resolved. |
| CRON_DISABLED | back to summary |
|---|---|
| public static final String CRON_DISABLED A special cron expression value that indicates a disabled trigger: -. This is primarily meant for use with
| |
| cron | back to summary |
|---|---|
| public String cron() A cron-like expression, extending the usual UN*X definition to include triggers on the second, minute, hour, day of month, month, and day of week. For example, The fields read from left to right are interpreted as follows.
The special value
| |
| fixedDelay | back to summary |
|---|---|
| public long fixedDelay() Execute the annotated method with a fixed period between the end of the last invocation and the start of the next. The time unit is milliseconds by default but can be overridden via
NOTE: With virtual threads, fixed rates and cron triggers are recommended
over fixed delays. Fixed-delay tasks operate on a single scheduler thread
with
| |
| fixedDelayString | back to summary |
|---|---|
| public String fixedDelayString() Execute the annotated method with a fixed period between the end of the last invocation and the start of the next. The time unit is milliseconds by default but can be overridden via
This attribute variant supports Spring-style "${...}" placeholders as well as SpEL expressions. NOTE: With virtual threads, fixed rates and cron triggers are recommended
over fixed delays. Fixed-delay tasks operate on a single scheduler thread
with
| |
| fixedRate | back to summary |
|---|---|
| public long fixedRate() Execute the annotated method with a fixed period between invocations. The time unit is milliseconds by default but can be overridden via
| |
| fixedRateString | back to summary |
|---|---|
| public String fixedRateString() Execute the annotated method with a fixed period between invocations. The time unit is milliseconds by default but can be overridden via
This attribute variant supports Spring-style "${...}" placeholders as well as SpEL expressions.
| |
| initialDelay | back to summary |
|---|---|
| public long initialDelay() Number of units of time to delay before the first execution of a
The time unit is milliseconds by default but can be overridden via
| |
| initialDelayString | back to summary |
|---|---|
| public String initialDelayString() Number of units of time to delay before the first execution of a
The time unit is milliseconds by default but can be overridden via
This attribute variant supports Spring-style "${...}" placeholders as well as SpEL expressions.
| |
| scheduler | back to summary |
|---|---|
| public String scheduler() A qualifier for determining a scheduler to run this scheduled method on. Defaults to an empty String, suggesting the default scheduler. May be used to determine the target scheduler to be used,
matching the qualifier value (or the bean name) of a specific
| |
| timeUnit | back to summary |
|---|---|
| public TimeUnit timeUnit() The Defaults to This attribute is ignored for cron expressions
and for
| |
| zone | back to summary |
|---|---|
| public String zone() A time zone for which the cron expression will be resolved. By default, this attribute is the empty String (i.e. the scheduler's time zone will be used).
| |