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执行....");
}
}
上一篇: 两头堵模型