老师,还是没明白wait_time的大小为何会导致多个tomcat获得锁,我感觉没有关系啊,可能我理解的不对

来源:16-4 Redisson分布式锁实战-2:解决wait_time之坑

慕九州5775722

2018-04-13

写回答

1回答

KD里的傻气

2018-04-16

假如tomcat1和tomcat2同时在执行closeOrderTaskV4,tomcat1竞争到锁了,tomcat2没有竞争到

如果wait_time设的是0,那tomcat2没竞争到锁就直接退出closeOrderTaskV4了。

如果wait_time设的是1秒,而执行closeOrderTaskV4的时间需要10秒,那tomcat2在等待1秒后就会退出;但如果执行closeOrderTaskV4的时间很短,比如100毫秒,小于wait_time设置的1秒,这时tomcat1执行完退出了,锁就释放了,tomcat2就会获得到这个锁了,也就会把closeOrderTaskV4再执行一次。。。

这是只有2个tomcat在运行的情况,如果有更多个呢?等于t+0ms是tomcat1执行,t+100ms是tomcat2执行,t+300ms是tomcat3执行....

3
4
Geely
回复
慕九州5775722
哈哈哈缘分~
2018-06-17
共4条回复

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程