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

场景

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

相关推荐
失散133 小时前
分布式专题——23 Kafka日志索引详解
java·分布式·云原生·架构·kafka
程序消消乐3 小时前
深入理解Kafka的复制协议与可靠性保证
分布式·kafka
荣光波比3 小时前
ZooKeeper与Kafka分布式协调系统实战指南:从基础原理到集群部署
运维·分布式·zookeeper·kafka·云计算
weixin_436525079 小时前
芋道源码 - RabbitMQ + WebSocket 实现分布式消息推送
分布式·websocket·rabbitmq
飞鱼&9 小时前
RabbitMQ-消息堆积
分布式·rabbitmq
zcyf08099 小时前
rabbitmq分布式事务
java·spring boot·分布式·rabbitmq
北欧柠檬酸海豹10 小时前
Kafka
分布式·kafka
熙客10 小时前
Session与JWT安全对比
java·分布式·安全·web安全·spring cloud
熙客12 小时前
分布式ID解决方案
java·分布式·spring cloud·微服务
大数据CLUB12 小时前
基于hive和mapreduce的地铁数据分析及可视化_hive作为数据库
大数据·hive·hadoop·分布式·数据分析·mapreduce