## 场景
销售订单下,明细25明细款,
发起飞书审批,飞书设置自动审核通过,导致会收到两次审核通过通知
加了分布式锁 ,仍导致执行业务执行两遍了
String lockKey = "feihsu-approvalNotify:" + instanceCode; RLock lock = redissonClient.getLock(lockKey); boolean res = lock.tryLock(20, 20, TimeUnit.SECONDS);
原来是业务逻辑代码超过 20s了,导致自动释放锁了
对 lock.tryLock(20, 20, TimeUnit.SECONDS);参数不理解
第一个参数是获取锁的等待时间
第二个参数是持有锁的时间,租借时间,不会自动续锁
所有 lock.tryLock(20,TimeUint.SECONDS) ,持有锁时间参数默认-1
所以应改成
boolean res = lock.tryLock(20, TimeUnit.SECONDS);