任务调度简介
1.1什么是任务调度
在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作。常见的任务调度框架有Quartz和SpringTask等。
SpringTask入门
1.2 SpringTask入门小Demo
创建模块52xbc-task-service
,引入spring
相关依赖 dao
和common
工程,tomcat7
端口为9108
添加web.xml
添加配置文件applicationContext-task.xml
,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd">
<context:component-scan base-package="com.pinyougou.task"/>
<task:annotation-driven/>
</beans>
导入spring核心包
打开pom.xml
文件添加spring
核心包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
创建包cn.52xbc.task
编写类
@Component
public class SeckillTask {
/**
* 刷新秒杀商品
*/
@Scheduled(cron="* * * * * ?")
public void refreshSeckillGoods(){
System.out.println("执行了任务调度"+new Date());
}
}
加载spring容器
修改web.xml
文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-task.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
执行后会看到控制台每秒都输出了当前时间,其中cron
设置的为表达式,是执行的时间规则。