上锁位置质疑
来源:8-8 利用分布式锁避免任务并发(上)
神剑昭明
2019-04-05
感觉有个bug,是在分布式上锁阶段。这个锁应该提前,在写入执行表之前就要上锁,也就是在TryStartJob函数中判断完是否在执行中的语句之后。成功以后再写执行表。我看视频和代码里都写到ExecuteJob这个函数里了。这样有个问题,如果两台机器,另一台机器抢到锁执行,本机器上锁失败但是已经加入到了执行表中,当另一台机器宕机后,本机也无法执行调度了,也就是说这个调度任务永远无法完成调度。 老师给看下是不是这样?
写回答
1回答
-
小鱼儿老师
2019-04-06
不是的,无论是否抢到锁,函数末尾都会释放分布式锁。
00
相似问题