public async Task SeamphoreCanTimeout() { semaphore = new RemoteSemaphore(db, 1, TimeSpan.FromSeconds(1)); var s1 = await semaphore.TryGetAsync(); await Task.Delay(1500); var s2 = await semaphore.TryGetAsync(); var len = await db.SortedSetLengthAsync(semaphore.TimeoutKey); Assert.True(s1.IsSuccess); Assert.True(s2.IsSuccess); Assert.Equal(1, len); }
public async Task CanRefreshWhenNotTimeout() { semaphore = new RemoteSemaphore(db, 2, TimeSpan.FromSeconds(2)); var r1 = await semaphore.TryGetAsync(); await Task.Delay(500); var isRefresh = await semaphore.RefreshAsync(r1.SemaphoreId); await Task.Delay(2200); var isRefresh2 = await semaphore.RefreshAsync(r1.SemaphoreId); Assert.True(isRefresh); Assert.True(isRefresh2); }
public RedisUntilsTests() { db = multiplexer.GetDatabase(); semaphore = new RemoteSemaphore(db, 2, TimeSpan.FromSeconds(30)); }