当前位置: 首页 > news >正文

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

## 场景

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

http://www.dtcms.com/a/307005.html

相关文章:

  • 白话容器基础(一):进程
  • Mybatis分页查询当前页数据条数大于实际返回的数据条数
  • 拥抱智慧物流时代:数字孪生技术的应用与前景
  • Matplotlib(四)- 图表样式美化
  • Linux日志管理和时钟同步配置指南
  • OneCode3.0 框架深入研究与应用扩展
  • html页面跳转或者a标签锚点跳转,解决页面滚动问题3个(1.从底部开始滚动,2.滚动不到指定锚点位置,3.页面展示不在最上面)
  • MySQL图解索引篇(2)
  • 斯皮尔曼spearman相关系数
  • 25年新算法!基于猛禽的优化算法(BPBO):一种元启发式优化算法,附完整免费MATLAB代码
  • Java反射-动态代理
  • cmake_parse_arguments()构建清晰灵活的 CMake 函数接口
  • 智汇AI,应用领航 | 华宇万象问数入选2025全景赋能典型案例
  • 36、spark-measure 源码修改用于数据质量监控
  • Linux零基础Shell教学全集(可用于日常查询语句,目录清晰,内容详细)(自学尚硅谷B站shell课程后的万字学习笔记,附课程链接)
  • 「Spring Boot + MyBatis-Plus + MySQL 一主两从」读写分离实战教程
  • Linux 中,命令查看系统版本和内核信息
  • Linux 系统原理深度剖析与技术实践:从内核架构到前沿应用
  • 【选型】HK32L088 与 STM32F0/L0 系列 MCU 参数对比与选型建议(ST 原厂 vs 国产芯片)(单片机选型主要考虑的参数与因素)
  • 【python】列表“*”方式与推导式方式初始化区别
  • 数据结构——单链表1
  • 【WRF-Chem】EDGAR 排放数据处理:分部门合并转化为二进制(Python全代码)
  • RAG实战指南 Day 27:端到端评估框架实现
  • CSS-in-JS 动态主题切换与首屏渲染优化
  • 1.5.Vue v-for 和 指令修饰符
  • COZE 开源,新一代 AI Agent 本地部署一条龙
  • Excel文件解析
  • OpenWrt Network configuration
  • 百度统计在哪里添加网站?
  • Linux系统启动不受未挂载硬盘影响的解决方案