protected async Task <bool> AttemptLockOnInstanceAsync(IConnection connection, PreliminaryLock <TIdentity> preliminaryLock, TimeSpan ttl) { try { return(await connection.SetStringWhenNotSetAsync(preliminaryLock.Resource, preliminaryLock.Identity.ToString(), ttl)); } catch (Exception ex) { //TODO: Log ex return(false); } }
protected async Task UnlockOnInstanceAsync(IConnection connection, PreliminaryLock <TIdentity> preliminaryLock) { await connection.DeleteIfMatchedAsync(preliminaryLock.Resource, preliminaryLock.Identity.ToString()); }
public virtual IDistributedLock <TIdentity> EstablishLock(IDistributedLockManager <TIdentity> dlm, PreliminaryLock <TIdentity> preliminaryLock, DateTime expiration) { return(DistributedLock <TIdentity> .EstablishLock(dlm, preliminaryLock.Resource, preliminaryLock.Identity, expiration)); }