版本管理工程师



我正在将线性处理系统转换为Gearman,但我还没有在生产环境中实际部署Gearman。

我们有一个部署链来推送新版本的源代码(Staging, Dark启动,a/B),但由于Gearman工作器与主应用程序完全分离,我们如何升级它们?

我想到了几个选项,没有一个是完美的:

  1. 正常控制源代码版本并关闭环境以升级
  2. 在函数注册名中控制工作线程的版本,ResizeFunction-v1.3
  3. 将版本号添加到worker中,并将其附加到作业中,这样如果一个worker不应该处理它,它可以退出并让另一个worker处理它。

理想的情况将允许我处理工作代码的更新,而不用担心来自旧客户端代码的工作将被不兼容的工作程序拾取,因此版本升级顺利。

我猜语义版本将适用于这里(v1.0.0 -主要。次要)。Major会破坏API兼容性,minor会添加新功能,patch会修复bug)

不幸的是,在您的用例中,最好的选择是对函数名进行版本控制,这样您就可以处理遗留函数的维护以及实现这些相同函数的新版本。你能做的是在你的worker代码中实现一些日志记录并监控它,一旦遗留worker在预定义的时间内不再接收工作,你就知道你可以将该worker作为遗留代码退役。不需要对gearman守护进程本身进行版本化,因为您不需要更改gearman守护进程本身的任何内容。

相关内容

  • 没有找到相关文章

最新更新