Annotation Interface SchedulerLock


@Documented @Retention(RUNTIME) @Target({TYPE,METHOD}) @Around @Executable @Type(SchedulerLockInterceptor.class) public @interface SchedulerLock
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Lock name.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The lock will be held at least for this period of time.
    How long the lock should be kept in case the machine which obtained the lock died before releasing it.
  • Element Details

    • name

      String name
      Lock name.
    • lockAtMostFor

      String lockAtMostFor
      How long the lock should be kept in case the machine which obtained the lock died before releasing it. This is just a fallback, under normal circumstances the lock is released as soon the tasks finishes. Can be any format supported by Duration Conversion

      Default:
      ""
    • lockAtLeastFor

      String lockAtLeastFor
      The lock will be held at least for this period of time. 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 any format supported by Duration Conversion
      Default:
      ""