2
我正在将一个线性处理系统转换为Gearman,但我实际上并没有在生产环境中部署Gearman。版本控制员工
对于推送源代码的新版本(Staging,Dark launch,A/B),我们有一个部署链,但由于Gearman工作人员与主应用程序完全分离,我们如何升级它们?
有一对夫妇的浮现在脑海中的选项,他们都不是完美的:
- 版本控制源代码,正常关机环境升级
- 在其功能上注册的名称版本的工人,
ResizeFunction-v1.3
- 将版本号添加到工作人员中,并将其附加到工作中,以便如果工作人员不应处理该工作人员,则可以退出并让其他人处理它。
理想的情况下,我可以处理工作代码的更新,而不用担心老客户端代码中的作业会被不兼容的工作人员拿走,从而顺利进行版本升级。
我想语义版本将适用于此处(v1.0.0
- Major.minor.patch,主要将打破API的兼容性,轻微增加了新的功能,和补丁修复的bug)
您是否需要运行“传统”工作人员,还是仅仅让他们升级而不麻烦? – Wrikken
我必须仍然使用旧代码运行这些工作人员,以便他们可以处理来自'尚未升级'的服务器的作业 –
嗯,这不是我已经有过的解决方案:)。但是我想给'整个gearman服务器'版本。这意味着新版本会得到一个新的守护进程和一个新的端口。任何使用新版本的人都知道新的端口号。 – Wrikken