• 每周一坑管理端和手机端版本号不一致


    管理端和手机端版本号不一致
      话说A系统的生产环境,管理端和手机端前端静态目录是分开的,分别部署在两台服务器上,但,其实目录内容是完全一样的。其他环境(测试、体验)则合在一起。我之前做的一个版本号更新需求,写了好几篇文章【https://www.cnblogs.com/windysai/p/16200707.html】。
      后面还优化过逻辑(一个临时文件判断状态),今天竟然有测试人员反馈,说版本号倒退:手机端比管理端版本号多一个小版本号。如下图:
     
      管理端:

      手机端:

         然后前端知道这个事后,在他不知道我实现逻辑的前提下,说我每次发布都是读gitlab代码的.env 版本号,然后改掉再上传。。。

      我知道后无比郁闷,作为一个“宁为玉碎不为瓦全”的女子,绝对不能含冤受屈,特意给他们解释了实现逻辑,总结如下(逻辑实现上确实没问题,粗心的锅):

      每次发布真正读版本号的是服务器的版本号记录文件,并不是前端瞎扯的直接读 .env 版本号。因为如果手机端和管理端发布都要改这个文件,直接读.env版本号去取,会有偏颇。

    (1)读服务器记录版本号的文件,取出上次发布的旧版本号(对应main分支.env版本号)
      old_ver=服务器记录版本号的文件的旧版本号
      new_ver=old_ver+1
     其中old_ver 和 new_ver 顺便显示到jenkins控制台上
    (下图的old_version 和 new_version 其实就是 old_ver 和 new_ver)
    把new_ver 写入服务器的临时文件tmp(我后来想的优化,因为不一定会发布成功,也有可能发布任务过程中人为临时中断)
    (2)编译发布
    (3)发布成功才把临时文件tmp的版本号,写入服务器记录版本号的文件 xxx_version.txt,再推送修改过版本号的代码回gitlab。

       大家可以想想为啥手机端会多了一个版本号?

      前面也说过,之前管理端和手机端合一起,所以更新版本号只需要做一次,现在分开,则两边都要做!!!

      我手机端仅仅改了,从gitlab拉下来的 .env 版本号,然后编译代码,最后忘记推送回gitlab了,如下图:

      服务器去到jenkins任务区间验证,确实是这个原因:

      解决这个问题也很容易,既然手机端没推送回gitlab,补一下就得了。

      而为了区分究竟是手机端还是管理端更新的版本号,我用了一个标识(pkg_deploy)去区分,admin表示管理端,mobile 则是手机端。

      临时文件要写入是admin还是mobile,例如发布管理端,则写入:

           echo admin ${new_ver} $DATE > admin_version_tmp.txt

      如果是手机端,则写入:

           echo mobile ${new_ver} $DATE > admin_version_tmp.txt

      最后统一调用更新版本号的jenkins任务:

     现在那个服务器的版本号记录文件变成这种形式:

    admin 版本号a1  发布时间
    mobile 版本号a1+1 发布时间
    。。。。
  • 相关阅读:
    Mongodb复制集配置
    Alluxio部署(集群模式)
    【性能-windows端口限制】TPS上不去,应用无压力只有cpu5%,tomcat线程最高1500,增大并发出现connect 报错
    SQL优化(三)—— 索引、explain分析
    vbs,修改文件名
    Fiddler的详细介绍
    Fiddler 抓包工具总结
    从零开始学习jQuery (一) 开天辟地入门篇
    Jmeter关联之正则表达式提取器(完整版)
    Jmeter实现百分比业务比例
  • 原文地址:https://www.cnblogs.com/windysai/p/16659881.html
Copyright © 2020-2023  润新知