请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

要是key超时后业务还没执行完咋办呢

请教一下,要是有线程成功调用了set方法,然后直到key过期,该线程需要执行的业务代码还没执行完。而这时其他线程又成功调用了set方法,访问了之前被锁住的同一资源,那是不是还是会出现线程不安全的问题

正在回答

1回答

翔仔 2020-04-01 14:55:25

同学好,所以key的超时设置只是以防万一,通常需要根据系统得实际情况,也就是压测之后的响应请求最长时间的1.5倍进行设置。而且你设置足够长也没关系的,毕竟只有异常的情况会意外退出,才会导致锁在没有超时的情况下不被释放,而通常情况下,请求处理完之后,就会释放掉锁了,所以设置成一点无所谓。如果你设置了10分钟,处理还没完成,那么是不是处理有问题了,用户也不会去等10分钟呢。。

0 回复 有任何疑惑可以回复我~
  • 提问者 fenkapian #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-04-01 16:05:43
  • 如果过期时间设置得过长,那么其他线程不是会堵塞过久吗?为什么说没关系呢?没有理解这点。。。
    回复 有任何疑惑可以回复我~ 2020-11-09 15:52:42
  • 翔仔 回复 慕虎7161837 #3
    设置的时间特别长,但是你本身任务一结束,正常流程是会去在代码里面实现把锁给释放掉的呀,我们示例里面也是在代码流程正常结束后就会主动释放掉锁
    回复 有任何疑惑可以回复我~ 2020-11-10 00:15:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信