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

**第一步:**在启动类加上注解@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执行....");
    }

}

你可能感兴趣的:(Springboot里设置定时任务或者周期任务)