weixin_45634725 2022-12-23 20:04 采纳率: 100%
浏览 17
已结题

两个不同程序共用一把锁,无法控制?

今天在写项目时遇到一个问题,使用springboot的监听器监听数据库的一个字段是否变化,并执行一系列操作。同时主程序运行时也根据这个数据库字段做同样的操作。说是为了防止主程序对数据库操作失败,结果造成的结果是,该操作会执行两次。我想创建一个公共锁,两个程序根据同样的数据拿到一样的锁(锁的类型是string类型,相同数据一样的内容当作锁),这样一个进入,另一个就不会进入,但似乎不支持跨程序锁,有啥方法解决吗?

  • 写回答

3条回答 默认 最新

  • pzzhao 2022-12-23 20:12
    关注

    如果你的服务是多示例部署的可以采用分布式锁,具体通过redis或者ZooKeeper或者数据库来实现,可以根据自己的实际情况来。
    也可以参考这个博客里面分布式锁的实现 https://blog.csdn.net/m0_67645544/article/details/124768505

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 12月23日

悬赏问题

  • ¥15 电脑出问题了,说是usbmom注册表没
  • ¥20 需要步骤截图(标签-服务器|关键词-map)
  • ¥50 gki vendor hook
  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网