java.lang.Object
org.apache.pekko.coordination.lease.scaladsl.Lease

public abstract class Lease extends Object
  • Constructor Details

  • Method Details

    • acquire

      public abstract scala.concurrent.Future<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 pekko.coordination.lease.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 pekko.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<Object> acquire(scala.Function1<scala.Option<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<Object> release()
      Release the lease so some other owner can acquire it.
    • settings

      public LeaseSettings settings()