Spring @Scheduled 定时任务

来源:互联网 发布:yii2开源cms推荐 编辑:程序博客网 时间:2024/05/20 18:44

1. 修改配置文件

  • 在Spring配置文件xmlns里加入task的命名空间
  xmlns:task="http://www.springframework.org/schema/task"   
  • xsi:schemaLocation中加入
  http://www.springframework.org/schema/task  http://www.springframework.org/schema/task/spring-task-4.1.xsd 

2. 启用注解驱动的定时任务,配置定时任务的线程池

    <task:executor id="executor" pool-size="5" />    <task:scheduler id="scheduler" pool-size="10" />    <task:annotation-driven executor="executor" scheduler="scheduler" />
  • 配置扫描位置
  <context:component-scan base-package="com.network.admin"/>

3. 实现定时任务

@Scheduled注解为定时任务,cron表达式里写执行的时机

@Componentpublic class TestTask {    @Scheduled(cron = "0/5 * *  * * ?")    public void myTest() {        System.out.println("测试啊啊啊啊啊啊啊啊");    }

> Tips

  • spring的@Scheduled注解,需要写在实现方法上
  • 定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误,需要设定一个proxytargetclass的某个值为true)
  • 实现类上要有组件的注解@Component
  • cron 表达式
原创粉丝点击