Bug实录(一)

代码完成,检验完毕,逻辑正常,本地测试没有出现任何异常!bug还是不离不弃地发生了!

接下来,打包代码,生成开发环境的线上实例,作为苦逼的程序员,开始了自测。
告警!告警!告警!

自测过程中发现,拨测同一个接口,在间隔不到两分钟的时间内,居然出现了数据不一致的情况。该接口对应的程序代码是单线程的,没有多线程并发操作。因此可以断定此非程序代码之过也,原因不在代码层面,当时脑海中有一个怀疑:接口处理请求的方式是随机的,即如果服务器上同时有多个实例,那么对该接口的请求是被随机分发到任何一个实例上执行的,可能是该程序有两个实例在运行,一个是代码未更新前已在运行的实例,一个是代码更新后启动的新实例。

多次拨测接口后,仍然是数据正常与异常时不时交叉出现。故此判断问题出现在服务器层面,因此上服务器定位问题。运行linux命令:jps | grep 实例名的前缀,我勒个去,居然真的有两个程序实例在同时运行。可是我明明在启动新实例时是restart命令,怎么还会出现这种吊诡的情况呢?

细细想来,在restart命令执行过程中,我的旧实例尚未被杀死,而新实例却先行已经启动完成,中断了杀死的旧实例的命令的运行,致使新旧两个实例同时存在运行。在此次教训之后,每次restart后,我都会使用linux命令:jps | grep 实例名的前缀 查看是否只有一个实例运行。当然还有一种更省心的方法,即先stop原来运行的实例,再start现在需要运行的新实例,消除隐患。 bug不仅仅存于程序员书写的程序代码之中,当一份程序的正常运行需要依赖、资源,那么这些依赖、资源、环境都是bug滋生的沃土

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c语言项目开发全程实录 项目名称:学生成绩管理系统 1. 立项阶段 在决定使用c语言开发学生成绩管理系统之前,我们进行了市场调研和需求分析,确定了使用c语言开发的合理性和必要性。 2. 需求分析 我们与学校教师和管理员进行了多次沟通,明确了学生成绩管理系统的功能需求和性能要求,包括学生成绩录入、查询、统计和报表生成等功能。 3. 概要设计 根据需求分析,我们制定了学生成绩管理系统的概要设计方案,包括系统结构、模块划分、数据结构和算法设计等内容。 4. 详细设计 在概要设计的基础上,我们进行了系统的详细设计,包括各个模块的流程图、数据结构设计、函数设计等。 5. 编码阶段 在经过详细设计确认无误后,我们开始了c语言代码的编写。根据模块划分,我们分别完成了学生信息管理模块、课程信息管理模块、成绩查询模块等各个功能模块的编码工作。 6. 调试和测试 在编码完成后,我们进行了系统的调试和测试工作,包括单元测试、模块测试和集成测试等,确保系统的稳定性和功能的完整性。 7. 部署和上线 经过调试和测试确认无误后,我们将学生成绩管理系统部署到学校的服务器上,并进行了上线发布,供教师和管理员正式使用。 8. 运维和维护 学生成绩管理系统上线后,我们进行了系统的运维和维护工作,保证系统的稳定运行和及时修复bug,同时根据用户的反馈不断进行优化和升级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值