etcd分布式锁失效后,怎样重新执行任务
当前的结构是项目部署为多个节点
启动就会watch etcd,当有新任务放到etcd里时,程序先执行分布式锁(只能有一个节点锁成功)并且执行任务,其它节点锁失败,继续watch
如果锁成功的节点执行任务失败,自动释放锁后,如何触发任务重新执行?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
兄台,我没太看明白问题是啥呀?代码中有一个任务队列,然后任务执行需要加分布式锁?那执行失败,锁不自动就释放了么?你是想让那个失败的任务再重新执行一次?
今天加了代码,所有节点开个协程去watch lock,如果是DELETE事件,就判断任务是否还存在(任务执行成功并且锁释放之前会删除待执行任务),如果还存在表示上一次执行失败,重新执行 总感觉做的很麻烦,也不知道etcd是不是这么用的
让执行失败的那个节点触发