上锁位置质疑

来源:8-8 利用分布式锁避免任务并发(上)

神剑昭明

2019-04-05

感觉有个bug,是在分布式上锁阶段。这个锁应该提前,在写入执行表之前就要上锁,也就是在TryStartJob函数中判断完是否在执行中的语句之后。成功以后再写执行表。我看视频和代码里都写到ExecuteJob这个函数里了。这样有个问题,如果两台机器,另一台机器抢到锁执行,本机器上锁失败但是已经加入到了执行表中,当另一台机器宕机后,本机也无法执行调度了,也就是说这个调度任务永远无法完成调度。 老师给看下是不是这样?

写回答

1回答

小鱼儿老师

2019-04-06

不是的,无论是否抢到锁,函数末尾都会释放分布式锁。

0
0

Go语言开发分布式任务调度 轻松搞定高性能Crontab

分布式系统设计+高并发细节处理,一次性让你“晋级”到位

1136 学习 · 177 问题

查看课程