Annotation Interface Scheduled


Annotation that marks a method to be scheduled. Exactly one of the 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.

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:
  • Field Details

    • CRON_DISABLED

      static final String 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 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, "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 zone
      A time zone for which the cron expression will be resolved. By default, this attribute is the empty String (i.e. the server's local time zone will be used).
      Returns:
      a zone id accepted by TimeZone.getTimeZone(String), or an empty String to indicate the server's default time zone
      Since:
      4.0
      See Also:
      Default:
      ""
    • fixedDelay

      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 timeUnit().

      Returns:
      the delay
      Default:
      -1L
    • fixedDelayString

      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 timeUnit().

      Returns:
      the delay as a String value — for example, a placeholder or a java.time.Duration compliant value
      Since:
      3.2.2
      Default:
      ""
    • fixedRate

      long fixedRate
      Execute 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 fixedRateString
      Execute 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 as a String value — for example, a placeholder or a java.time.Duration compliant value
      Since:
      3.2.2
      Default:
      ""
    • initialDelay

      long initialDelay
      Number of units of time to delay before the first execution of a fixedRate() or fixedDelay() task.

      The time unit is milliseconds by default but can be overridden via timeUnit().

      Returns:
      the initial
      Since:
      3.2
      Default:
      -1L
    • initialDelayString

      String initialDelayString
      Number of units of time to delay before the first execution of a fixedRate() or fixedDelay() task.

      The time unit is milliseconds by default but can be overridden via timeUnit().

      Returns:
      the initial delay as a String value — for example, a placeholder or a java.time.Duration compliant value
      Since:
      3.2.2
      Default:
      ""
    • timeUnit

      TimeUnit timeUnit
      Returns:
      the TimeUnit to use
      Since:
      5.3.10
      Default:
      MILLISECONDS