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

发布于 2022-01-06 07:29:55 字数 145 浏览 785 评论 3

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心舞飞扬 2022-01-07 20:28:07

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

小瓶盖 2022-01-07 11:31:29

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

终遇你 2022-01-07 04:32:11

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文