任务调度简介

1.1什么是任务调度
在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作。常见的任务调度框架有Quartz和SpringTask等。

SpringTask入门

1.2 SpringTask入门小Demo
创建模块52xbc-task-service,引入spring相关依赖 daocommon工程,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设置的为表达式,是执行的时间规则。
任务调度SpringTask入门.png

推荐阅读:SpringTask Cron表达式

Last modification:June 26, 2019
如果觉得这篇技术文章对你有用,请随意赞赏