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 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); }
private void UnLockMethod <T>(MethodInfo method, Lock lockobj) where T : Attribute { Attribute attrib = method.GetCustomAttribute(typeof(T)); if (attrib == null || lockobj == null || _redlock == null) { return; } _redlock.Unlock(lockobj); }
public void TestThatSequenceLockedUnlockedAndLockedAgainIsSuccessfull() { var configBuilder = new ConfigurationBuilder(); configBuilder .AddJsonFile("app.json", true); var configRoot = configBuilder.Build(); var dlm = new Redlock(ConnectionMultiplexer.Connect(configRoot[ServerA_Key])); 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 void TestWhenLockedAnotherLockRequestIsRejected() { 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"); 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 TestWhenLockedAnotherLockRequestIsRejected() { 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"); 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 TestWhenLockedAnotherLockRequestIsRejected() { var configBuilder = new ConfigurationBuilder(); configBuilder .AddJsonFile("app.json", true); var configRoot = configBuilder.Build(); var dlm = new Redlock(ConnectionMultiplexer.Connect(configRoot[ServerA_Key])); 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); }
private static void LockExec(Action work, Redlock redLock, Lock lockObject, bool locked) { try { if (locked) { work(); } } catch (Exception ex) { throw ex; } finally { if (locked) { redLock.Unlock(lockObject); } } }