关于javaEE中的定时任务,我们可以用java自带的java.util.Timer工具类结合java.util.TimerTask来完成,但是控制不方便,代码量也比较多。
所以建议使用Quartz集合Spring来完成。
一、集成
1、在一开始配置maven的依赖的时候,没有注意到Quartz和spring版本不兼容的问题,上网查过之后发现spring4.2.6和Quartz2.2.0很酷的结合到一起。
<!-- Spring集成Quartz定时任务框架 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.0</version>
</dependency>
<srping.version>4.2.6.RELEASE</srping.version>
2、增加定时任务的逻辑类,只是一个方法,没什么特别的,用于在业务上处理繁琐的逻辑和数据的处理。
public class TaskJob {
Logger logger = LoggerFactory.getLogger(TaskJob.class);
public void job(){
System.out.println("定时器被触发了,很酷,小伙伴们");
logger.info("你知道吗,因为之前没有开启redis服务,报了异常,所以Quartz定时任务没有走通");
}
}
3、增加Spring配置
<!-- 线程池配置 -->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">