目录
定时任务
是我们在编程中需要的东西。Java中定义了定时任务的类,下面我们来简单示范一下。
public class TimerTaskApp {
public static void main(String[] args) {
Timer timer=new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
System.out.println("task run");
}
};
timer.schedule(task,0,2000);
}
}
Quartz
然后由于这样比较繁琐,不太方便,所以我们下面来介绍一下springboot整合定时框架quartz。
1.引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
2.创建任务类
public class MyQuartz extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
System.out.println("run...");
}
}
3.创建配置类,并绑定任务类
@Configuration
public class QuartzConfig {
@Bean//绑定对应的工作
public JobDetail printJD(){
return JobBuilder
.newJob(MyQuartz.class)
.storeDurably()
.build();
}
@Bean//绑定对应的工作明细
public Trigger printTrigger(){
//秒,分,时,日,月,星期
ScheduleBuilder scheduleBuilder=CronScheduleBuilder.cronSchedule("0 0 0 * * ?");
return TriggerBuilder.newTrigger()
.forJob(printJD())
.withSchedule(scheduleBuilder)
.build();
}
}
4.启动springboot,定时任务就自动开始了
SpringTask
然后感觉上面的步骤还是有点麻烦,我们的task就给出了更简单的方法。
1.开启
//开启定时任务开关
@EnableScheduling
public class JetcacheDemoApplication {
public static void main(String[] args) {
SpringApplication.run(JetcacheDemoApplication.class, args);
}
}
2.在方法类中开启
@Component
public class MyBean {
@Scheduled(cron = "0/1 * * * * ?")
public void print(){
System.out.println("...");
}
}
然后就完成了,非常简单。