springboot(十)定时任务

来源:互联网 发布:天正软件过期怎么办 编辑:程序博客网 时间:2024/06/06 00:33

1、在demoApplication里添加@EnableScheduling,开启定时任务


package com.demo;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.web.servlet.ServletComponentScan;import org.springframework.boot.web.support.SpringBootServletInitializer;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestController@ServletComponentScan@EnableSchedulingpublic class DemoApplication extends SpringBootServletInitializer{@RequestMapping("/")public String home(){return "hello world";}public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

2、写定时任务

package com.demo.service;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.time.LocalDate;import java.time.LocalTime;/** * Created by huguoju on 2016/12/30. */@Componentpublic class ScheduledTasks {    @Scheduled(fixedRate = 5000)    public void reportCurrentTime() {        System.out.println("The time is now " + LocalTime.now());    }}

5秒执行一次。


说明

//定义一个按时间执行的定时任务,在每天16:00执行一次。
@Scheduled(cron = "0 0 16 * * ?")
//定义一个按一定频率执行的定时任务,每隔1分钟执行一次
    @Scheduled(fixedRate = 1000 * 60)
//定义一个按一定频率执行的定时任务,每隔1分钟执行一次,延迟1秒执行
    @Scheduled(fixedRate = 1000 * 60,initialDelay = 1000)
// 每天早八点到晚八点,间隔2分钟执行任务@Scheduled(cron="0 0/2 8-20 * * ?") 
// 每天早八点到晚八点,间隔3分钟执行任务@Scheduled(cron="0 0/3 8-20 * * ?") 
// 每天早八点到晚八点,间隔1分钟执行任务@Scheduled(cron="0 0/1 8-20 * * ?")



cron表达式中各时间元素使用空格进行分割,分别表示如下含义:
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)







0 0
原创粉丝点击