etcd分布式锁失效后,怎样重新执行任务

jack_jones 发布于 03/11 17:17
阅读 219
收藏 0

当前的结构是项目部署为多个节点

启动就会watch etcd,当有新任务放到etcd里时,程序先执行分布式锁(只能有一个节点锁成功)并且执行任务,其它节点锁失败,继续watch

如果锁成功的节点执行任务失败,自动释放锁后,如何触发任务重新执行?

加载中
0
开源中国首席聊天玩家
开源中国首席聊天玩家

让执行失败的那个节点触发

jack_jones
jack_jones
今天加了代码,所有节点开个协程去watch lock,如果是DELETE事件,就判断任务是否还存在(任务执行成功并且锁释放之前会删除待执行任务),如果还存在表示上一次执行失败,重新执行 总感觉做的很麻烦,也不知道etcd是不是这么用的
0
逍遥jc
逍遥jc

兄台,我没太看明白问题是啥呀?代码中有一个任务队列,然后任务执行需要加分布式锁?那执行失败,锁不自动就释放了么?你是想让那个失败的任务再重新执行一次?

返回顶部
顶部