Redison提供了看门狗机制实现Redis分布式锁的自动续期。
//1、获取一把锁,只要锁的名字一样,就是同一把锁 RLock lock = redisson.getLock("my-lock"); //2、加锁 lock.lock(30,TimeUnit.SECONDS); // 省掉了整个续期 *** 作。手动解锁 lock.lock(); //默认加的锁都是30s时间。看门狗机制自动续期。
如上,Redison加分布式锁的两个重载方法。
方法一:lock.lock(30,TimeUnit.SECONDS);
- 我们传递了锁的超时时间,就发送给redis执行脚本,进行占锁,默认超时就是我们指定的时间。
- 在锁时间到了以后,不会自动续期。
lock.lock();
- 如果我们未指定锁的超时时间,就使用30 * 1000(LockWatchdogTimeout看门狗的默认时间);
- 只要占锁成功,就会启动一个定时任务,每隔10s (看门狗时间 / 3)都会自动再次续期,续成30s;
- 加锁的业务只要运行完成,就不会给当前锁续期,即使不手动解锁,锁默认在30s以后自动删除。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)