1
litguy 2023-03-01 08:32:00 +08:00
我们过去的逻辑是,如果任务还在执行,但是锁续约失败了,直接触发 crash
否则,你的逻辑要出错,因为出现了两个干活的任务并发了 |
5
litguy 2023-03-02 08:27:06 +08:00
@noble4cc 我们不是续约线程挂,是续约线程 申请 lease 没成功(不论是网络原因还是什么原因),线程自己触发 core 就行了,他没申请到 lease ,那肯定别人申请到了,也许没申请到,总之不能冒险
|
6
litguy 2023-03-02 08:28:30 +08:00
你用 etcd 的锁就可以作这个,一个线程负责获取锁,在锁失效期到来前要再次获取,如果不能获取,就自杀,这样可以保证执行工作的线程总是在本机持有锁的情况下工作的,不会导致和别的节点并发执行
|