Example #1
0
        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);
            }
        }
Example #2
0
        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));
        }
Example #3
0
 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;
 }