在 SSM 框架有自带的定时器,只需要简单的配置就可以使用了,如果不会 SSM 框架的搭建的可以看我前面发布的文章挺详细的
接下来就是步骤开始话不多说上代码:
1、首先创建一个定时任务
package com.hnlf.app.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Description: 创建定时任务
* @Author:
* @Date: 2019-12-13 9:14
*/
@Component
public class Scheduler {
private final SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 5 秒执行一次
*/
@Scheduled(fixedRate= 5000)
public void test1(){
System.out.println("定时任务开始:"+ dateFormat.format(new Date()));
}
}
2、有定时任务后我们肯定需要一个触发器,下面配置启动器
注意:看着可能很像我们的项目启动器,但是切记不能放到项目启动器下会出现错误。创建完成它会自动扫描不用担心
package com.hnlf.starter;
import javafx.application.Application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* @Description:
* @Author:
* @Date: 2019-12-13 9:27
*/
@SpringBootApplication
@EnableScheduling
public class SpringApplicationTask {
public static void main(String[] args) throws Exception{
// SpringBoot 定时器
SpringApplication.run(Application .class);
}
}
是不是很简单,到这就算完成了启动主项目启动器就可以了
下面是一些时间配置
@Scheduled(fixedRate=3000):上一次开始执行时间点后3秒再次执行;
@Scheduled(fixedDelay=3000):上一次执行完毕时间点3秒再次执行;
@Scheduled(initialDelay=1000, fixedDelay=3000):第一次延迟1秒执行,然后在上一次执行完毕时间点3秒再次执行;
@Scheduled(cron="* * * * * ?"):按cron规则执行,这个规则可以自行百度搜索这里就不展示了;
如果你绝对对你有用,请不要吝啬你的赞美之情。