Annotation Type EnableSchedulerLock


@Target(TYPE)
@Retention(RUNTIME)
@Import(SchedulerLockConfigurationSelector.class)
public @interface EnableSchedulerLock
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  EnableSchedulerLock.InterceptMode  
  • Required Element Summary

    Required Elements
    Modifier and Type Required Element Description
    String defaultLockAtMostFor
    Default value how long the lock should be kept in case the machine which obtained the lock died before releasing it.
  • Optional Element Summary

    Optional Elements
    Modifier and Type Optional Element Description
    String defaultLockAtLeastFor
    The lock will be held at least for this duration.
    EnableSchedulerLock.InterceptMode interceptMode
    Mode of integration, either TaskScheduler is wrapped in a proxy or the scheduled method is proxied to ensure locking
    org.springframework.context.annotation.AdviceMode mode
    Since 3.0.0 use interceptMode() to configure the intercept mode.
    int order
    Indicate the ordering of the execution of the locking advisor when multiple advices are applied at a specific joinpoint.
    boolean proxyTargetClass
    Indicate whether subclass-based (CGLIB) proxies are to be created as opposed to standard Java interface-based proxies.
  • Element Details

    • defaultLockAtMostFor

      String defaultLockAtMostFor
      Default value how long the lock should be kept in case the machine which obtained the lock died before releasing it. Can be either time with suffix like 10s or ISO8601 duration as described in Duration.parse(CharSequence), for example PT30S. This is just a fallback, under normal circumstances the lock is released as soon the tasks finishes. Set this to some value much higher than normal task duration. Can be overridden in each ScheduledLock annotation.
    • interceptMode

      Mode of integration, either TaskScheduler is wrapped in a proxy or the scheduled method is proxied to ensure locking
      See Also:
      Modes of Spring integration
      Default:
      PROXY_METHOD
    • defaultLockAtLeastFor

      String defaultLockAtLeastFor
      The lock will be held at least for this duration. Can be either time with suffix like 10s or ISO8601 duration as described in Duration.parse(CharSequence), for example PT30S. Can be used if you really need to execute the task at most once in given period of time. If the duration of the task is shorter than clock difference between nodes, the task can be theoretically executed more than once (one node after another). By setting this parameter, you can make sure that the lock will be kept at least for given period of time. Can be overridden in each ScheduledLock annotation.
      Default:
      "PT0S"
    • mode

      org.springframework.context.annotation.AdviceMode mode
      Since 3.0.0 use interceptMode() to configure the intercept mode. Had to be renamed to make it compatible with Spring AOP infrastructure. Sorry. Indicate how advice should be applied.
      Default:
      PROXY
    • proxyTargetClass

      boolean proxyTargetClass
      Indicate whether subclass-based (CGLIB) proxies are to be created as opposed to standard Java interface-based proxies.
      Default:
      false
    • order

      int order
      Indicate the ordering of the execution of the locking advisor when multiple advices are applied at a specific joinpoint.

      The default is Ordered.LOWEST_PRECEDENCE.

      Default:
      2147483647