springboot(十)定时任务

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)







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值