最开始项目中只有一个定时任务,用来处理数据库中的一些数据,后面由于项目需要,需要增加两个定时任务,问题就出现了。。
最开始的配置文件中的配置是这样的
<!-- Enables the Spring MVC @Controller programming model -->
<task:annotation-driven/>
<context:component-scan base-package="com.liam" />
这种情况在单个任务时候不会出现任何问题,因为Spring定时任务本就是单线程的,采用注解方式实现的
/**
* 三分钟解析一次数据
*/
@Scheduled(initialDelay = 25000, fixedDelay = 1000 * 60 * 3)
public void parseDataFromDB() {
// 线程1
Thread t1 = new Thread(new Runnable() {
public void run() {
try {
timerParseData(0);
} catch (Exception e) {
log.info("线程1--异常: " + e);
e.printStackTrace();
}
}
});
t1.start();
// 线程2
Thread t2 = new Thread(new Runnable() {
public void run() {
try {
timerParseData(1);
} catch (Exception e) {
log.info("线程2--异常: