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

场景

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

相关推荐
Chasing__Dreams2 小时前
kafka--基础知识点--6.4--LSO
数据库·分布式·kafka
Query*9 小时前
分布式消息队列kafka【五】—— kafka海量日志收集实战
分布式·kafka
serendipity_hky11 小时前
【SpringCloud | 第5篇】Seata分布式事务
分布式·后端·spring·spring cloud·seata·openfeign
lang2015092814 小时前
Kafka元数据缓存机制深度解析
分布式·缓存·kafka
qq_3432470316 小时前
单机版认证kafka
数据库·分布式·kafka
武子康16 小时前
Java-199 JMS Queue/Topic 集群下如何避免重复消费:ActiveMQ 虚拟主题与交付语义梳理
java·分布式·消息队列·rabbitmq·activemq·mq·java-activemq
源代码•宸16 小时前
分布式缓存-GO(简历写法、常见面试题)
服务器·开发语言·经验分享·分布式·后端·缓存·golang
A尘埃17 小时前
Java业务场景(高并发+高可用+分布式)
java·开发语言·分布式
苦学编程的谢18 小时前
RabbitMQ_7_高级特性(4)
分布式·rabbitmq
赵榕18 小时前
RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费?
分布式·微服务·rabbitmq