Class Lease

  • Direct Known Subclasses:
    LeaseAdapterToScala

    public abstract class Lease
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      Lease​(LeaseSettings settings)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract scala.concurrent.Future<java.lang.Object> acquire()
      Try to acquire the lease.
      abstract scala.concurrent.Future<java.lang.Object> acquire​(scala.Function1<scala.Option<java.lang.Throwable>,​scala.runtime.BoxedUnit> leaseLostCallback)
      Same as acquire with an additional callback that is called if the lease is lost.
      abstract boolean checkLease()
      Check if the owner still holds the lease.
      abstract scala.concurrent.Future<java.lang.Object> release()
      Release the lease so some other owner can acquire it.
      LeaseSettings settings()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • acquire

        public abstract scala.concurrent.Future<java.lang.Object> acquire()
        Try to acquire the lease. The returned Future will be completed with true if the lease could be acquired, i.e. no other owner is holding the lease.

        The returned Future will be completed with false if the lease for certain couldn't be acquired, e.g. because some other owner is holding it. It's completed with LeaseException failure if it might not have been able to acquire the lease, e.g. communication timeout with the lease resource.

        The lease will be held by the akka.coordination.lease.LeaseSettings.ownerName until it is released with Lease.release. A Lease implementation will typically also lose the ownership if it can't maintain its authority, e.g. if it crashes or is partitioned from the lease resource for too long.

        Lease.checkLease can be used to verify that the owner still has the lease.

      • acquire

        public abstract scala.concurrent.Future<java.lang.Object> acquire​(scala.Function1<scala.Option<java.lang.Throwable>,​scala.runtime.BoxedUnit> leaseLostCallback)
        Same as acquire with an additional callback that is called if the lease is lost. The lease can be lose due to being unable to communicate with the lease provider. Implementations should not call leaseLostCallback until after the returned future has been completed
      • checkLease

        public abstract boolean checkLease()
        Check if the owner still holds the lease. true means that it certainly holds the lease. false means that it might not hold the lease, but it could, and for more certain response you would have to use {@link Lease#acquire()*} or release().
      • release

        public abstract scala.concurrent.Future<java.lang.Object> release()
        Release the lease so some other owner can acquire it.