Class RedisLockManager

  • All Implemented Interfaces:
    com.netflix.spinnaker.kork.lock.LockManager, com.netflix.spinnaker.kork.lock.RefreshableLockManager

    public class RedisLockManager
    extends java.lang.Object
    implements com.netflix.spinnaker.kork.lock.RefreshableLockManager
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface com.netflix.spinnaker.kork.lock.LockManager

        com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<R extends java.lang.Object>, com.netflix.spinnaker.kork.lock.LockManager.Lock, com.netflix.spinnaker.kork.lock.LockManager.LockCallbackException, com.netflix.spinnaker.kork.lock.LockManager.LockException, com.netflix.spinnaker.kork.lock.LockManager.LockExpiredException, com.netflix.spinnaker.kork.lock.LockManager.LockMetricsConstants, com.netflix.spinnaker.kork.lock.LockManager.LockNotAcquiredException, com.netflix.spinnaker.kork.lock.LockManager.LockOptions, com.netflix.spinnaker.kork.lock.LockManager.LockReleaseStatus, com.netflix.spinnaker.kork.lock.LockManager.LockStatus, com.netflix.spinnaker.kork.lock.LockManager.Named
      • Nested classes/interfaces inherited from interface com.netflix.spinnaker.kork.lock.RefreshableLockManager

        com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatLockRequest, com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatResponse, com.netflix.spinnaker.kork.lock.RefreshableLockManager.LockFailedHeartbeatException, com.netflix.spinnaker.kork.lock.RefreshableLockManager.LockHeartbeatStatus
    • Field Summary

      • Fields inherited from interface com.netflix.spinnaker.kork.lock.LockManager

        NAME_FALLBACK
    • Constructor Summary

      Constructors 
      Constructor Description
      RedisLockManager​(java.lang.String ownerName, java.time.Clock clock, com.netflix.spectator.api.Registry registry, com.fasterxml.jackson.databind.ObjectMapper objectMapper, RedisClientDelegate redisClientDelegate)  
      RedisLockManager​(java.lang.String ownerName, java.time.Clock clock, com.netflix.spectator.api.Registry registry, com.fasterxml.jackson.databind.ObjectMapper objectMapper, RedisClientDelegate redisClientDelegate, java.util.Optional<java.lang.Long> heartbeatRateMillis, java.util.Optional<java.lang.Long> leaseDurationMillis)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<java.lang.Void> acquireLock​(com.netflix.spinnaker.kork.lock.LockManager.LockOptions lockOptions, java.lang.Runnable onLockAcquiredCallback)  
      <R> com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<R> acquireLock​(com.netflix.spinnaker.kork.lock.LockManager.LockOptions lockOptions, java.util.concurrent.Callable<R> onLockAcquiredCallback)  
      com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<java.lang.Void> acquireLock​(java.lang.String lockName, long maximumLockDurationMillis, java.lang.Runnable onLockAcquiredCallback)  
      <R> com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<R> acquireLock​(java.lang.String lockName, long maximumLockDurationMillis, java.util.concurrent.Callable<R> onLockAcquiredCallback)  
      com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatResponse heartbeat​(com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatLockRequest heartbeatLockRequest)  
      void queueHeartbeat​(com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatLockRequest heartbeatLockRequest)  
      boolean releaseLock​(com.netflix.spinnaker.kork.lock.LockManager.Lock lock, boolean wasWorkSuccessful)  
      com.netflix.spinnaker.kork.lock.LockManager.Lock tryCreateLock​(com.netflix.spinnaker.kork.lock.LockManager.LockOptions lockOptions)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface com.netflix.spinnaker.kork.lock.LockManager

        getOwnerName, lockKey
    • Constructor Detail

      • RedisLockManager

        public RedisLockManager​(java.lang.String ownerName,
                                java.time.Clock clock,
                                com.netflix.spectator.api.Registry registry,
                                com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                                RedisClientDelegate redisClientDelegate,
                                java.util.Optional<java.lang.Long> heartbeatRateMillis,
                                java.util.Optional<java.lang.Long> leaseDurationMillis)
      • RedisLockManager

        public RedisLockManager​(java.lang.String ownerName,
                                java.time.Clock clock,
                                com.netflix.spectator.api.Registry registry,
                                com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                                RedisClientDelegate redisClientDelegate)
    • Method Detail

      • acquireLock

        public <R> com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<R> acquireLock​(@Nonnull
                                                                                                  com.netflix.spinnaker.kork.lock.LockManager.LockOptions lockOptions,
                                                                                                  @Nonnull
                                                                                                  java.util.concurrent.Callable<R> onLockAcquiredCallback)
        Specified by:
        acquireLock in interface com.netflix.spinnaker.kork.lock.LockManager
      • acquireLock

        public <R> com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<R> acquireLock​(@Nonnull
                                                                                                  java.lang.String lockName,
                                                                                                  long maximumLockDurationMillis,
                                                                                                  @Nonnull
                                                                                                  java.util.concurrent.Callable<R> onLockAcquiredCallback)
        Specified by:
        acquireLock in interface com.netflix.spinnaker.kork.lock.LockManager
      • acquireLock

        public com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<java.lang.Void> acquireLock​(@Nonnull
                                                                                                           java.lang.String lockName,
                                                                                                           long maximumLockDurationMillis,
                                                                                                           @Nonnull
                                                                                                           java.lang.Runnable onLockAcquiredCallback)
        Specified by:
        acquireLock in interface com.netflix.spinnaker.kork.lock.LockManager
      • acquireLock

        public com.netflix.spinnaker.kork.lock.LockManager.AcquireLockResponse<java.lang.Void> acquireLock​(@Nonnull
                                                                                                           com.netflix.spinnaker.kork.lock.LockManager.LockOptions lockOptions,
                                                                                                           @Nonnull
                                                                                                           java.lang.Runnable onLockAcquiredCallback)
        Specified by:
        acquireLock in interface com.netflix.spinnaker.kork.lock.LockManager
      • releaseLock

        public boolean releaseLock​(@Nonnull
                                   com.netflix.spinnaker.kork.lock.LockManager.Lock lock,
                                   boolean wasWorkSuccessful)
        Specified by:
        releaseLock in interface com.netflix.spinnaker.kork.lock.LockManager
      • heartbeat

        public com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatResponse heartbeat​(com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatLockRequest heartbeatLockRequest)
        Specified by:
        heartbeat in interface com.netflix.spinnaker.kork.lock.RefreshableLockManager
      • queueHeartbeat

        public void queueHeartbeat​(com.netflix.spinnaker.kork.lock.RefreshableLockManager.HeartbeatLockRequest heartbeatLockRequest)
        Specified by:
        queueHeartbeat in interface com.netflix.spinnaker.kork.lock.RefreshableLockManager
      • tryCreateLock

        public com.netflix.spinnaker.kork.lock.LockManager.Lock tryCreateLock​(com.netflix.spinnaker.kork.lock.LockManager.LockOptions lockOptions)
        Specified by:
        tryCreateLock in interface com.netflix.spinnaker.kork.lock.LockManager