ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Quartz配置数据库+springboot

2022-03-07 23:00:06  阅读:163  来源: 互联网

标签:Quartz return springboot SchedulerFactoryBean 数据库 org springframework schedulerF


 

 

//1.创建触发器
CronTrigger cronTrigger1 = TriggerBuilder.newTrigger()
.withIdentity(jobName,jobGroup)
.withSchedule(CronScheduleBuilder.cronSchedule(cron))
.build();
//2.创建jobDetail
//反射获取类对象的三种方式:类.class、 Class.forName(类路径)、对象.getClass()
JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(jobName))
.withIdentity(jobName, jobGroup)
.build();
//3.将触发器和jobDetail加入到调度器中
scheduler.scheduleJob(jobDetail,cronTrigger1);
//启动



配置类
/**
* @Author: LJX
* @DateTime: 2022/3/6 22:12
* @Description: 解决job注入到上下文中
*/
@Configuration
public class MyJobFactory extends AdaptableJobFactory {
@Autowired
private AutowireCapableBeanFactory autowireCapableBeanFactory;

@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
Object jobInstance = super.createJobInstance(bundle);
//将job注入到上下文中
autowireCapableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}
}


import org.quartz.Scheduler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.PropertiesFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

import java.io.IOException;
import java.util.Properties;

/**
* @Author: LJX
* @DateTime: 2022/3/6 22:17
* @Description: 调度器配置,将调度器放入到spring上下文中
*/
@Configuration
public class QuartzConfig {

@Autowired
private MyJobFactory myJobFactory;

@Bean
//获取调度器
public Scheduler scheduler(){
//调度器来自于工厂对象中
//这个对象读取了配置文件和job也加入了spring上下文中
return schedulerFactoryBean().getScheduler();
}

@Bean
public SchedulerFactoryBean schedulerFactoryBean(){

//1.创建SchedulerFactoryBean对象
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();

//2.将配置文件内信息放入对象中
schedulerFactoryBean.setQuartzProperties(quartzProperties());

//3.将MyjobFactory放入到工厂对象中
schedulerFactoryBean.setJobFactory(myJobFactory);

return schedulerFactoryBean;
}
/**
* 创建读取自定义配置文件Properties类
* @return
*/
public Properties quartzProperties(){
try {
//创建读取自定义配置文件Properties类
PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties"));
propertiesFactoryBean.afterPropertiesSet();
return propertiesFactoryBean.getObject();
} catch (IOException e) {
throw new RuntimeException(e);
}

}

}

标签:Quartz,return,springboot,SchedulerFactoryBean,数据库,org,springframework,schedulerF
来源: https://www.cnblogs.com/chwl-ljx/p/15978536.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有