Class Lease
API for a distributed lock. Any lease implementation should provide the following guarantees:
Inherited Members
Namespace: Akka.Coordination
Assembly: Akka.Coordination.dll
Syntax
public abstract class Lease
Constructors
| Improve this Doc View SourceLease(LeaseSettings)
Creates a new Lease instance.
Declaration
public Lease(LeaseSettings settings)
Parameters
Type | Name | Description |
---|---|---|
LeaseSettings | settings | Lease settings |
Properties
| Improve this Doc View SourceSettings
Lease settings
Declaration
public LeaseSettings Settings { get; }
Property Value
Type | Description |
---|---|
LeaseSettings |
Methods
| Improve this Doc View SourceAcquire()
Try to acquire the lease. The returned Task will be completed with true
if the lease could be acquired, i.e. no other owner is holding the lease.
The returned Task 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 OwnerName until it is released with 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.
CheckLease() can be used to verify that the owner still has the lease.
Declaration
public abstract Task<bool> Acquire()
Returns
Type | Description |
---|---|
Task<Boolean> |
Acquire(Action<Exception>)
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
Declaration
public abstract Task<bool> Acquire(Action<Exception> leaseLostCallback)
Parameters
Type | Name | Description |
---|---|---|
Action<Exception> | leaseLostCallback |
Returns
Type | Description |
---|---|
Task<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 Acquire() or Release().
Declaration
public abstract bool CheckLease()
Returns
Type | Description |
---|---|
Boolean |
Release()
Release the lease so some other owner can acquire it.
Declaration
public abstract Task<bool> Release()
Returns
Type | Description |
---|---|
Task<Boolean> |