该线程或进程自上一个步骤以来已更改_杀进程导致任务中断,数据丢失?1个技巧让SpringBoot延迟停机...

前言

今天公司项目要发新版本,经理把这个重任交到了我的手上。

发版过程一切顺利,没想到新版发布后出现了数据丢失的情况,到底怎么回事?我要怎么解决这个问题?

目录

  1. 杀进程会导致定时任务中断吗?
  2. 网上优雅停机的方法有用吗?
  3. 自己动手实现延时停机

杀进程会导致定时任务中断吗?

我们项目部署在Linux系统上,经过一番折腾终于成功连上服务器,网上查了一下发布项目的主要步骤(只保留重点,已省略其他不相关的操作):

  1. 使用ps命令找到项目运行的进程编号(PID);
  2. 使用kill命令干掉该进程;
  3. 上传并替换最新JAR包;
  4. 执行nohup java -jar命令启动项目;

我按着这个步骤就是一顿操作,还好中间没出啥问题顺利上线。(心想发版原来如此简单~)

没过多久,业务部门反应后台报表统计数据有缺失,经理让我协助排查一下。

我打开报表一看,确实存在部分数据丢失的情况,看时间正好是我发布新版本的时间,不会又是我的锅吧?(有点慌~)

怎么排查问题呢?

先来看一下报表数据是怎么统计的,我找到代码一看,发现数据是通过Spring的定时任务统计的。

你可能感兴趣的:(该线程或进程自上一个步骤以来已更改_杀进程导致任务中断,数据丢失?1个技巧让SpringBoot延迟停机...)