Spring 计划任务

Posted 静! 非淡泊无以明志,非宁静无以致远!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 计划任务的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot教程11——计划任务

Spring 计划任务

spring boot: @EnableScheduling开启计划任务支持,@Scheduled计划任务声明

Fragment 中的计划任务将 getActivity 返回为 null

spring scheduling 计划任务

SpringBoot -- 计划任务