## 場景
銷售訂單下,明細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);