一.背景: 使用 springboot 搭建的一个项目,使用到了 springboot 的定时器;打包成 jar 包,需要部署到 Windows server 2012 R2 ; jdk 均使用 1.8 版本,springboot 使用 2.0.4.RELEASE ; 二.出现的情况: 星期六: 1:自己在 windows 系统的 ieda 上开发,其中定时器部分使用 springboot 的 @Scheduled 注解,且在 idea 上能正常运行,打成 jar 包之后也能在本地 Windows 部署也正常运行,把 jar 包部署到 Windows server 上也能正常运行,定时器也正常启动; 星期天: 1:项目在星期六的基础上将一部分代码逻辑改变,不涉及到定时器模块,在 idea 上能正常运行,打包在本地 Windows 上也能运行,jar 包部署到 Windows server 上,项目启动了,但是定时器未生效;然后将 jar 部署到 centos 上也能正常启动;
在出现以上状况后,我将定时器执行的代码放到一个 A 类的 b 方法中,因为定时器中需要查询数据库
及缓存中的数据,所以 A 类实现了 ApplicationContextAware 接口,然后在 setApplicationContext 方法中使用 TimerTask 启动了一个定时任务,定时执行 b 方法;结果还是跟上边的情况一样,在 idea 正常启动,jar 包在本地 部署也正常启动,但是 jar 部署到 Windows server 上后项目能启动,但是定时器未启动;
三.出于某些原因,只能在下一个版本换系统,这个版本无法更换系统,只能使用 Windows server。。。。
四.问题: 1.请问以上情况该从哪些方面去思考出现的问题;
1
johnniang 2018-11-19 10:19:38 +08:00 1
之前行,现在不行, 那么就找改变的地方,你可以考虑输出日志或者远程调试(部分代码逻辑更改处)。
|