在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作。常见的任务调度框架有Quartz和SpringTask等。
SpringTask小Demo
1.项目中添加配置文件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="cn.itcast.core.task"/> <task:annotation-driven/> </beans>
创建包cn.itcast.core.task, 编写类
@Component public class SeckillTask { /** * 刷新秒杀商品 */ @Scheduled(cron="* * * * * ?") public void refreshSeckillGoods(){ System.out.println("执行了任务调度"+new Date()); } }
执行后会看到控制台每秒都输出了当前时间,其中cron设置的为表达式,是执行的时间规则。