com.twitter.distributedlog.lock.ZKSessionLock.unlock()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(4.6k)|赞(0)|评价(0)|浏览(95)

本文整理了Java中com.twitter.distributedlog.lock.ZKSessionLock.unlock()方法的一些代码示例,展示了ZKSessionLock.unlock()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKSessionLock.unlock()方法的具体详情如下:
包路径:com.twitter.distributedlog.lock.ZKSessionLock
类名称:ZKSessionLock
方法名:unlock

ZKSessionLock.unlock介绍

[英]NOTE: unlockInternal should only after try lock.
[中]注意:只有在尝试锁定后才能解锁Internal。

代码示例

代码示例来源:origin: twitter/distributedlog

  1. unlock();

代码示例来源:origin: twitter/distributedlog

  1. @Test(timeout = 60000)
  2. public void testLockWhenPreviousLockZnodeStillExists() throws Exception {
  3. String lockPath = "/test-lock-when-previous-lock-znode-still-exists-" +
  4. System.currentTimeMillis();
  5. String clientId = "client-id";
  6. ZooKeeper zk = zkc.get();
  7. createLockPath(zk, lockPath);
  8. final ZKSessionLock lock0 = new ZKSessionLock(zkc0, lockPath, clientId, lockStateExecutor);
  9. // lock0 lock
  10. lock0.tryLock(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
  11. // simulate lock0 expires but znode still exists
  12. final DistributedLockContext context1 = new DistributedLockContext();
  13. context1.addLockId(lock0.getLockId());
  14. final ZKSessionLock lock1 = new ZKSessionLock(zkc, lockPath, clientId, lockStateExecutor,
  15. 60000, NullStatsLogger.INSTANCE, context1);
  16. lock1.tryLock(0L, TimeUnit.MILLISECONDS);
  17. assertEquals(State.CLAIMED, lock1.getLockState());
  18. lock1.unlock();
  19. final DistributedLockContext context2 = new DistributedLockContext();
  20. context2.addLockId(lock0.getLockId());
  21. final ZKSessionLock lock2 = new ZKSessionLock(zkc, lockPath, clientId, lockStateExecutor,
  22. 60000, NullStatsLogger.INSTANCE, context2);
  23. lock2.tryLock(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
  24. assertEquals(State.CLAIMED, lock2.getLockState());
  25. lock2.unlock();
  26. lock0.unlock();
  27. }

代码示例来源:origin: twitter/distributedlog

  1. lock0.unlock();
  2. } else {
  3. ZooKeeperClientUtils.expireSession(zkc0, zkServers, sessionTimeoutMs);
  4. assertEquals(lock1.getLockId(), Await.result(asyncParseClientID(zkc.get(), lockPath, children.get(0))));
  5. lock1.unlock();

代码示例来源:origin: twitter/distributedlog

  1. lock.unlock();

代码示例来源:origin: twitter/distributedlog

  1. lock0.unlock();
  2. } else {
  3. ZooKeeperClientUtils.expireSession(zkc0, zkServers, sessionTimeoutMs);
  4. assertEquals(lock1_1.getLockId(), Await.result(asyncParseClientID(zkc.get(), lockPath, children.get(0))));
  5. lock1_1.unlock();

代码示例来源:origin: twitter/distributedlog

  1. assertEquals(lock0.getLockId(), Await.result(asyncParseClientID(zkc0.get(), lockPath, children.get(0))));
  2. lock0.unlock();
  3. assertEquals(lock2.getLockId(), Await.result(asyncParseClientID(zkc.get(), lockPath, children.get(0))));
  4. lock2.unlock();

代码示例来源:origin: twitter/distributedlog

  1. lock0.unlock();
  2. assertEquals(State.CLOSED, lock0.getLockState());
  3. children = getLockWaiters(zkc0, lockPath);
  4. assertEquals(State.CLAIMED, lock1.getLockState());
  5. assertEquals(lock1.getLockId(), Await.result(asyncParseClientID(zkc0.get(), lockPath, children.get(0))));
  6. lock1.unlock();
  7. } else {
  8. ZooKeeperClientUtils.expireSession(zkc0, zkServers, sessionTimeoutMs);

代码示例来源:origin: twitter/distributedlog

  1. lock.unlock();

代码示例来源:origin: twitter/distributedlog

  1. lock0_0.unlock();
  2. } else {
  3. ZooKeeperClientUtils.expireSession(zkc0, zkServers, sessionTimeoutMs);
  4. lock1.unlock();

代码示例来源:origin: twitter/distributedlog

  1. /**
  2. * Test lock after unlock is called.
  3. *
  4. * @throws Exception
  5. */
  6. @Test(timeout = 60000)
  7. public void testLockAfterUnlock() throws Exception {
  8. String lockPath = "/test-lock-after-unlock";
  9. String clientId = "test-lock-after-unlock";
  10. ZKSessionLock lock = new ZKSessionLock(zkc, lockPath, clientId, lockStateExecutor);
  11. lock.unlock();
  12. assertEquals(State.CLOSED, lock.getLockState());
  13. try {
  14. lock.tryLock(0, TimeUnit.MILLISECONDS);
  15. fail("Should fail on tryLock since lock state has changed.");
  16. } catch (LockStateChangedException lsce) {
  17. // expected
  18. }
  19. assertEquals(State.CLOSED, lock.getLockState());
  20. try {
  21. lock.tryLock(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
  22. fail("Should fail on tryLock immediately if lock state has changed.");
  23. } catch (LockStateChangedException lsce) {
  24. // expected
  25. }
  26. assertEquals(State.CLOSED, lock.getLockState());
  27. }

代码示例来源:origin: twitter/distributedlog

  1. /**
  2. * Test unlock timeout.
  3. *
  4. * @throws Exception
  5. */
  6. @Test(timeout = 60000)
  7. public void testUnlockTimeout() throws Exception {
  8. String name = testNames.getMethodName();
  9. String lockPath = "/" + name;
  10. String clientId = name;
  11. createLockPath(zkc.get(), lockPath);
  12. ZKSessionLock lock = new ZKSessionLock(
  13. zkc, lockPath, clientId, lockStateExecutor,
  14. 1*1000 /* op timeout */, NullStatsLogger.INSTANCE,
  15. new DistributedLockContext());
  16. lock.tryLock(0, TimeUnit.MILLISECONDS);
  17. assertEquals(State.CLAIMED, lock.getLockState());
  18. try {
  19. FailpointUtils.setFailpoint(FailpointUtils.FailPointName.FP_LockUnlockCleanup,
  20. new DelayFailpointAction(60*60*1000));
  21. lock.unlock();
  22. assertEquals(State.CLOSING, lock.getLockState());
  23. } finally {
  24. FailpointUtils.removeFailpoint(FailpointUtils.FailPointName.FP_LockUnlockCleanup);
  25. }
  26. }

相关文章