登录
首页 >  Golang >  Go问答

每次启动只有一个pod处理任务

来源:stackoverflow

时间:2024-02-14 21:18:21 496浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《每次启动只有一个pod处理任务》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我的部署跨多个 Pod 进行扩展。要求是每当应用程序启动时我都希望执行一段代码。但我只想要一个 pod 来执行这段代码。如何实现这一目标?

现在我有办法 - 我在数据库中设置一个标志,并让我的 Pod 读取该标志,首先读取并锁定该标志的 Pod 必须处理该任务。

我的方法有什么缺点吗?有没有更好的方法来做到这一点?


正确答案


我相信这是正确的做法。所有 pod 都需要有一种方法来了解其他人是否正在处理任务,并且通过数据库执行任务是最佳选择。唯一的缺点是,如果 pod 拾取它时,无法更新标志状态怎么办?那样的话会发生什么?

我能想到的另一个选择可能是将消息发布到消息队列(在 Pod、云平台之外维护的队列?)。这个想法是,每当 Pod 活跃时,它们就会检查队列并处理它。它与您所采用的数据库方法类似。

以上就是《每次启动只有一个pod处理任务》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>