业务逻辑大概是,一个螺丝刀,有人在用了,其他人无法使用,等待使用完成后另外一个人才能使用
描述下一路遇见的问题
- 分布式情况下需要用到分布式锁(用redis)
- 开启使用螺丝刀时,需要弹出新标签页。会导致后面关闭的触发会有问题
- 因为前端项目的逻辑问题,需要使用同一路径跳转然后再弹出窗口,这样速度慢,但是目前没有其他解决方案
- 因为弹出新标签需要加载基础信息、需要等一阵才会加载获取螺丝刀的方法,在这个时间突然关闭,结束的方法则会比开始的方法快一些,导致螺丝刀一直被使用中(主要问题)
最后一个问题的解决方法是在开始与结束时添加分布式锁,在开始时加锁直到修改螺丝刀的状态后才解锁,而解锁的方法则需要判断是否在正在开启螺丝刀使用状态,是则阻塞继续等待螺丝刀开启完成后才解锁螺丝刀。
标签:解锁,redis,问题,使用,螺丝刀,锁定,分布式 From: https://www.cnblogs.com/yoobiao/p/16936397.html