目录
定义工作明细和触发器,将他们交给spring的IOC容器管理
流行的定时任务技术。
pom中导入需要的jar包的坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
定义你要执行的任务
public class QuartzJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
for (int i=1;i<10;i++){
String s=" ";
for (int x=i;x>1;x--){
System.out.print(s);
}
for(int j=i;j<10;j++){
System.out.printf("%d * %d = %-3d",i,j,i*j);
}
System.out.println("");
}
}
}
这里我执行的是打印上三角九九乘法表。
定义工作明细和触发器,将他们交给spring的IOC容器管理
@Configuration
public class QuartzConfig {
@Bean //定义工作明细
public JobDetail detail(){
return JobBuilder
.newJob(QuartzJob.class)
.storeDurably()
.build();
}
@Bean //定义触发器
public Trigger trigger(){
CronScheduleBuilder schedule=CronScheduleBuilder.cronSchedule("0/30 * * * * ?");
return TriggerBuilder
.newTrigger()
.forJob(detail())
.withSchedule(schedule)
.build();
}
}
那个任务计划表从前往后依次是“秒 分 时 日 月 星期”,其中星期和日不能同时为“ ?”,也不能同时为“ * ”,我设置的是每隔30秒操作一次。
这样你就可以通过启动项目来观察了。