SpringBoot之整合Quartz调度框架-基于Spring Boot2.0.2版本
2021-01-21 18:16
标签:over exception tar int src Fix dex sep xtend 项目是基于Spring Boot2.x版本的 application-quartz.yml的配置内容如下 代码如下: CRON任务 其实上面的配置就等价于在传统的xml中配置bean是一样的。 至此,SpringBoot集成Quartz的完毕。 SpringBoot之整合Quartz调度框架-基于Spring Boot2.0.2版本 标签:over exception tar int src Fix dex sep xtend 原文地址:https://www.cnblogs.com/javagg/p/12894260.html1.项目基础
2.添加依赖
3.yml配置
spring:
quartz:
#相关属性配置
properties:
org:
quartz:
scheduler:
instanceName: clusteredScheduler
instanceId: AUTO
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
clusterCheckinInterval: 10000
useProperties: false
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10
threadPriority: 5
threadsInheritContextClassLoaderOfInitializingThread: true
#数据库方式
job-store-type: jdbc
#初始化表结构
#jdbc:
#initialize-schema: never
4.创建任务测试类
public class MyJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("start My Job:" + LocalDateTime.now());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end My Job:" + LocalDateTime.now());
}
}
public class MyCronJob extends QuartzJobBean {
@Autowired
IndexController indexController;
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("任务执行了" + new Date());
// indexController.testMail();
}
}
5.Java配置(QuartzConfiguration)
@Configuration
public class QuartzConfiguration {
// 使用jobDetail包装job
@Bean
public JobDetail myJobDetail() {
return JobBuilder.newJob(MyJob.class).withIdentity("myJob").storeDurably().build();
}
// 把jobDetail注册到trigger上去
@Bean
public Trigger myJobTrigger() {
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(15).repeatForever();
return TriggerBuilder.newTrigger()
.forJob(myJobDetail())
.withIdentity("myJobTrigger")
.withSchedule(scheduleBuilder)
.build();
}
// 使用jobDetail包装job
@Bean
public JobDetail myCronJobDetail() {
return JobBuilder.newJob(MyCronJob.class).withIdentity("myCronJob").storeDurably().build();
}
// 把jobDetail注册到Cron表达式的trigger上去
@Bean
public Trigger CronJobTrigger() {
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/10 * * * * ?");
return TriggerBuilder.newTrigger()
.forJob(myCronJobDetail())
.withIdentity("myCronJobTrigger")
.withSchedule(cronScheduleBuilder)
.build();
}
}
6.启动测试
四、总结
下一篇:Java提取字符串中的数字
文章标题:SpringBoot之整合Quartz调度框架-基于Spring Boot2.0.2版本
文章链接:http://soscw.com/index.php/essay/45091.html