Annotation Interface Scheduled
cron()
, fixedDelay()
, or fixedRate()
attributes
must be specified.
The annotated method must expect no arguments. It will typically have
a void
return type; if not, the returned value will be ignored
when called through the scheduler.
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.
- Since:
- 3.0
- Author:
- Mark Fisher, Juergen Hoeller, Dave Syer, Chris Beams, Victor Brown, Sam Brannen
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionA 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.long
Execute the annotated method with a fixed period between the end of the last invocation and the start of the next.Execute the annotated method with a fixed period between the end of the last invocation and the start of the next.long
Execute the annotated method with a fixed period between invocations.Execute the annotated method with a fixed period between invocations.long
Number of units of time to delay before the first execution of afixedRate()
orfixedDelay()
task.Number of units of time to delay before the first execution of afixedRate()
orfixedDelay()
task.TheTimeUnit
to use forfixedDelay()
,fixedDelayString()
,fixedRate()
,fixedRateString()
,initialDelay()
, andinitialDelayString()
.A time zone for which the cron expression will be resolved. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
A special cron expression value that indicates a disabled trigger: "-".
-
Field Details
-
CRON_DISABLED
A special cron expression value that indicates a disabled trigger: "-".This is primarily meant for use with
${...}
placeholders, allowing for external disabling of corresponding scheduled methods.- Since:
- 5.1
- See Also:
-
-
Element Details
-
cron
String cronA 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,
"0 * * * * MON-FRI"
means once per minute on weekdays (at the top of the minute - the 0th second).The fields read from left to right are interpreted as follows.
- second
- minute
- hour
- day of month
- month
- day of week
The special value
"-"
indicates a disabled cron trigger, primarily meant for externally specified values resolved by a${...}
placeholder.- Returns:
- an expression that can be parsed to a cron schedule
- See Also:
- Default:
- ""
-
zone
String zoneA 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).- Returns:
- a zone id accepted by
TimeZone.getTimeZone(String)
, or an empty String to indicate the scheduler's default time zone - Since:
- 4.0
- See Also:
- Default:
- ""
-
fixedDelay
long fixedDelayExecute 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
timeUnit()
.- Returns:
- the delay
- Default:
- -1L
-
fixedDelayString
String fixedDelayStringExecute 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
timeUnit()
.This attribute variant supports Spring-style "${...}" placeholders as well as SpEL expressions.
- Returns:
- the delay as a String value — for example, a placeholder
or a
java.time.Duration
compliant value - Since:
- 3.2.2
- See Also:
- Default:
- ""
-
fixedRate
long fixedRateExecute the annotated method with a fixed period between invocations.The time unit is milliseconds by default but can be overridden via
timeUnit()
.- Returns:
- the period
- Default:
- -1L
-
fixedRateString
String fixedRateStringExecute the annotated method with a fixed period between invocations.The time unit is milliseconds by default but can be overridden via
timeUnit()
.This attribute variant supports Spring-style "${...}" placeholders as well as SpEL expressions.
- Returns:
- the period as a String value — for example, a placeholder
or a
java.time.Duration
compliant value - Since:
- 3.2.2
- See Also:
- Default:
- ""
-
initialDelay
long initialDelayNumber of units of time to delay before the first execution of afixedRate()
orfixedDelay()
task.The time unit is milliseconds by default but can be overridden via
timeUnit()
.- Returns:
- the initial
- Since:
- 3.2
- Default:
- -1L
-
initialDelayString
String initialDelayStringNumber of units of time to delay before the first execution of afixedRate()
orfixedDelay()
task.The time unit is milliseconds by default but can be overridden via
timeUnit()
.This attribute variant supports Spring-style "${...}" placeholders as well as SpEL expressions.
- Returns:
- the initial delay as a String value — for example, a placeholder
or a
java.time.Duration
compliant value - Since:
- 3.2.2
- See Also:
- Default:
- ""
-
timeUnit
TimeUnit timeUnitTheTimeUnit
to use forfixedDelay()
,fixedDelayString()
,fixedRate()
,fixedRateString()
,initialDelay()
, andinitialDelayString()
.Defaults to
TimeUnit.MILLISECONDS
.This attribute is ignored for cron expressions and for
Duration
values supplied viafixedDelayString()
,fixedRateString()
, orinitialDelayString()
.- Returns:
- the
TimeUnit
to use - Since:
- 5.3.10
- Default:
- MILLISECONDS
-