redis分布式锁-解决同一资源多人获取锁定与释放问题

业务逻辑大概是,一个螺丝刀,有人在用了,其他人无法使用,等待使用完成后另外一个人才能使用

描述下一路遇见的问题

  • 分布式情况下需要用到分布式锁(用redis)
  • 开启使用螺丝刀时,需要弹出新标签页。会导致后面关闭的触发会有问题
  • 因为前端项目的逻辑问题,需要使用同一路径跳转然后再弹出窗口,这样速度慢,但是目前没有其他解决方案
  • 因为弹出新标签需要加载基础信息、需要等一阵才会加载获取螺丝刀的方法,在这个时间突然关闭,结束的方法则会比开始的方法快一些,导致螺丝刀一直被使用中(主要问题)

 

最后一个问题的解决方法是在开始与结束时添加分布式锁,在开始时加锁直到修改螺丝刀的状态后才解锁,而解锁的方法则需要判断是否在正在开启螺丝刀使用状态,是则阻塞继续等待螺丝刀开启完成后才解锁螺丝刀。

posted @ 2022-11-29 18:53  yoo_free  阅读(157)  评论(0)    收藏  举报