public void GivenIHaveAlreadyAcquiredTheLease() { var lease = new Lease(new AzureLeaseProvider(new ConnectionStringProvider()), new AzureLeasePolicyValidator()); var policy = ScenarioContext.Current.Get <LeasePolicy>(); lease.AcquireAsync(policy).Wait(); ScenarioContext.Current.Set(lease); }
public void GivenTheLeaseHasExpired() { var lease = new Lease(new AzureLeaseProvider(new ConnectionStringProvider()), new AzureLeasePolicyValidator()); var policy = ScenarioContext.Current.Get <LeasePolicy>(); lease.AcquireAsync(policy).Wait(); Thread.Sleep(policy.Duration.Value.Add(TimeSpan.FromSeconds(2))); ScenarioContext.Current.Set(lease); }
public void GivenActorAHasAlreadyAcquiredALeaseForAnOperationCalled(string leaseName) { var policy = new LeasePolicy { Name = leaseName, Duration = TimeSpan.FromSeconds(15) }; var lease = new Lease(new AzureLeaseProvider(new ConnectionStringProvider()), new AzureLeasePolicyValidator()); lease.AcquireAsync(policy).Wait(); ScenarioContext.Current.Set(lease, "ActorALease"); }
public async Task IsAcquired_WhenLeaseWasNotAcquired_ReturnsTrue() { // arrange // await Lease.AcquireAsync(Blob, TimeSpan.FromMinutes(1)); // act // var lease = await Lease.AcquireAsync(Blob, TimeSpan.FromMinutes(1)); // assert // Assert.False(Lease.IsAcquired(lease)); }
public void Start() { s_logger.Information("Starting pending notifications chaser..."); m_pollingJob.Start(async cancellationToken => { var lease = Lease.NotAcquired; var result = false; try { lease = await Lease.AcquireAsync( m_chaserExclusiveAccessBlobLock, TimeSpan.FromMinutes(Constants.Settings.PENDING_NOTIFICATIONS_CHASER_EXCLUSIVE_ACCESS_LOCK_TIMEOUT_IN_MINUTES)); if (Lease.IsAcquired(lease)) { s_logger.Verbose("Chaser lock was successfully acquired. Start pending notification processing..."); var processNotificationCount = await ProcessPendingNotificationsAsync(); s_logger.Information("Chaser republished {NotificationCount} unpublished notifications.", processNotificationCount); result = processNotificationCount != 0; } else { s_logger.Verbose("Chaser lock wasn't acquired."); } } catch (Exception exception) { s_logger.Error(exception, "Notification processing failed."); } await ReleaseLeaseAsync(lease); return(result); }); s_logger.Information("Pending notifications chaser started."); }
public async Task IsAcquired_WhenLeaseWasAcquired_ReturnsTrue() { var lease = await Lease.AcquireAsync(Blob, TimeSpan.FromMinutes(1)); Assert.True(Lease.IsAcquired(lease)); }