public void TestInsertRedis() { var redis = new RedLock(ConnectionMultiplexer.Connect("127.0.0.1:6379")); var client = redis.redisMasterDictionary["127.0.0.1:6379"]; var succeeded = client.GetDatabase().StringSet("testkey", "21232", TimeSpan.FromDays(1), When.NotExists); Assert.IsTrue(succeeded); }
public void TestWhenLockedAnotherLockRequestIsRejected() { var dlm = new RedLock(ConnectionMultiplexer.Connect("127.0.0.1:6379"), ConnectionMultiplexer.Connect("127.0.0.1:6380"), ConnectionMultiplexer.Connect("127.0.0.1:6381")); Lock lockObject; Lock newLockObject; var locked = dlm.Lock(resourceName, new TimeSpan(0, 0, 10), out lockObject); Assert.IsTrue(locked, "Unable to get lock"); locked = dlm.Lock(resourceName, new TimeSpan(0, 0, 10), out newLockObject); Assert.IsFalse(locked, "lock taken, it shouldn't be possible"); dlm.Unlock(lockObject); }
public void TestThatSequenceLockedUnlockedAndLockedAgainIsSuccessfull() { var dlm = new RedLock(ConnectionMultiplexer.Connect("127.0.0.1:6379")); Lock lockObject; Lock newLockObject; var locked = dlm.Lock(resourceName, new TimeSpan(0, 0, 10), out lockObject); Assert.IsTrue(locked, "Unable to get lock"); dlm.Unlock(lockObject); locked = dlm.Lock(resourceName, new TimeSpan(0, 0, 10), out newLockObject); Assert.IsTrue(locked, "Unable to get lock"); dlm.Unlock(newLockObject); }
public async void RestFullServiceRequestForFileDownloadTest() { RedLock redLock = new RedLock(1); List <Task> taskList = new List <Task>(); for (int i = 0; i < 5; i++) { taskList.Add(Task.Run(async() => { await redLock.Enter(); for (int j = 0; j < 100; j++) { await Task.Delay(1000); Console.WriteLine("count:" + j); } redLock.Release(); })); } await Task.WhenAll(taskList); Console.WriteLine("ds"); }