private void Release(string category, AcquiredLease acquiredLease) { Tuple <string, string> leaseKey = Tuple.Create(category, acquiredLease.ResourceKey); if (this.leases.TryGetValue(leaseKey, out Lease lease) && lease.Token == acquiredLease.Token) { leases.Remove(leaseKey); } }
private AcquireLeaseResult Renew(string category, AcquiredLease acquiredLease) { DateTime now = DateTime.UtcNow; // if lease exists, and we have the right token, and lease has not expired, renew. if (!this.leases.TryGetValue(Tuple.Create(category, acquiredLease.ResourceKey), out Lease lease) || lease.Token != acquiredLease.Token) { return(new AcquireLeaseResult(new AcquiredLease(acquiredLease.ResourceKey), ResponseCode.InvalidToken, new OrleansException("Invalid token provided, caller is not the owner."))); } // we don't care if lease has expired or not as long as owner has not changed. lease.ExpiredUtc = now + acquiredLease.Duration; return(new AcquireLeaseResult(new AcquiredLease(acquiredLease.ResourceKey, acquiredLease.Duration, lease.Token, now), ResponseCode.OK, null)); }
public AcquiredQueue(QueueId queueId, AcquiredLease lease) { this.QueueId = queueId; this.AcquiredLease = lease; }
public AcquiredQueue(int order, QueueId queueId, AcquiredLease lease) { this.LeaseOrder = order; this.QueueId = queueId; this.AcquiredLease = lease; }