欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Springboot里设置定时任务或者周期任务

程序员文章站 2022-07-14 18:33:55
...

**第一步:**在启动类加上注解@EnableScheduling

@SpringBootApplication
@EnableAutoConfiguration
@EnableScheduling   //定时任务或者周期任务的注解
@MapperScan("com.example.test.mapper")
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

**第二步:**下面三种方法根据需要自行选择一种,启动项目就可以实现,亲测可用

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

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

@Component
public class Schedule {
	
    public final static long ONE_Minute =  60 * 1000;
    
    /**
     * fixedDelay是当任务执行完毕后1分钟在执行
     * @throws InterruptedException 
     */
    @Scheduled(fixedDelay=ONE_Minute)
    public void fixedDelayJob() throws InterruptedException{
    	System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" >>准备执行");
    	Thread.sleep(8000);
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" >>fixedDelay执行....");
    }
    
    /**
     * fixedRate就是每隔多少时间执行一次
     * @throws InterruptedException 
     */
    @Scheduled(fixedRate=ONE_Minute)
    public void fixedRateJob() throws InterruptedException{
    	System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" >>准备执行");
    	Thread.sleep(8000);
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" >>fixedRate执行....");
    }

    /**
     * 每天的3点半执行
     */
    @Scheduled(cron="0 30 3 * * ?")
    public void cronJob(){
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+" >>cron执行....");
    }

}