您的位置:首页 > 编程语言 > Java开发

springboot(十)定时任务

2016-12-30 16:15 851 查看
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
@EnableScheduling
public 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.
*/
@Component
public 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: