我有这个后台服务,最近被添加到我的稳定的春季启动应用程序中,它被打包为战争并在prod环境中的tomcat下运行。
@Component
@EnableScheduling
public class MonitoringService {
@Autowired
SomeService someService;
@Scheduled(fixedRate = 15*60*1000, initialDelay=30*1000)
public void runPerodically() {
performChecks();
}
@Bean
public TaskScheduler taskScheduler() {
return new ConcurrentTaskScheduler();
}
}
由于添加了tomcat,tomcat似乎行为不稳定并且有时会卡住,并且在停止时总是会产生线程转储,例如
信息:销毁ProtocolHandler [“ajp-bio-0.0.0.0-8083”] 2017-09-06 21:43:54 完全线程转储Java HotSpot(TM)64位服务器VM(25.0-b70混合模式):
“DestroyJavaVM”#119 prio = 5 os_prio = 0 tid = 0x00007f3ef4529000 nid = 0x6496等待条件[0x0000000000000000] java.lang.Thread.State:RUNNABLE
“pool-7-thread-1”#67 prio = 5 os_prio = 0 tid = 0x00007f3ea8653800 nid = 0x7b28等待条件[0x00007f3e9cf41000]
此方法是否存在任何已知问题,或者执行此任务的正确方法是什么,