首页 > 代码库 > Spring 计划任务

Spring 计划任务

计划任务在Spring 中实现变得非常简单:

1. 首先通过在配置类中注解 @EnableScheduling 来开启对计划任务的支持

2. 然后在你执行任务的方法上注解 @Scheduled 来声明这是一个计划任务

 

例:

1. 计划任务执行业务类

package com.cz.scheduledTask;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 定时任务业务处理类
 * Created by Administrator on 2017/5/7.
 */

@Service
public class ScheduledTaskService {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    // 每隔固定的时间执行
    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime(){
        System.out.println("每隔五秒执行一次 " + dateFormat.format(new Date()));
    }

    // 按照指定时间执行
    @Scheduled(cron = "0 30 23 ? * *")
    public void fixTimeExecution(){
        System.out.println("在指定时间 " + dateFormat.format(new Date()) + " 执行");
    }
}

2. 配置类

package com.cz.scheduledTask;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * Created by Administrator on 2017/5/7.
 */

@Configuration
@ComponentScan("com.cz.scheduledTask")
@EnableScheduling  // 开启对计划任务的支持
public class TaskSchedulerConfig {
}

3. 测试执行

 

package com.cz.scheduledTask;

import org.hibernate.validator.cfg.context.AnnotationIgnoreOptions;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * Created by Administrator on 2017/5/7.
 */
public class TaskScheduler {

    public static void main(String[] args) {

        // 启动 Spring 上下文
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskSchedulerConfig.class);
    }
}

 

4. 执行结果

技术分享

 

Spring 计划任务