防止飞书重复回调通知分布式锁

场景

销售订单下,明细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);

相关推荐
齐木卡卡西在敲代码3 小时前
kafka的pull的依据
分布式·kafka
lllsure3 小时前
RabbitMQ 基础
分布式·rabbitmq
DN金猿7 小时前
rabbitmq发送的延迟消息时间过长就立即消费了
分布式·rabbitmq
程序员不迷路9 小时前
Kafka学习
分布式·kafka
北i10 小时前
ZooKeeper 一致性模型解析:线性一致性与顺序一致性的平衡
分布式·zookeeper·云原生
IT技术小密圈10 小时前
图解分布式锁: 5分钟搞懂分布式锁
分布式·后端·面试
bing_15811 小时前
kafka 生产者是如何发送消息的?
分布式·kafka
Monly2117 小时前
RabbitMQ:数据隔离
分布式·rabbitmq
萧鼎21 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
卡拉叽里呱啦1 天前
缓存-变更事件捕捉、更新策略、本地缓存和热key问题
分布式·后端·缓存