⚡ feat(修改): 修改文件配置,指定数据库
This commit is contained in:
parent
cc2d8b9d82
commit
116d1e6e18
|
@ -25,5 +25,17 @@
|
|||
<groupId>io.jsonwebtoken</groupId>
|
||||
<artifactId>jjwt</artifactId>
|
||||
</dependency>
|
||||
<!-- quartz定时任务 -->
|
||||
<dependency>
|
||||
<groupId>org.quartz-scheduler</groupId>
|
||||
<artifactId>quartz</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
|
||||
<dependency>
|
||||
<groupId>com.mchange</groupId>
|
||||
<artifactId>c3p0</artifactId>
|
||||
<version>0.9.5.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
@ -60,18 +60,6 @@
|
|||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjweaver</artifactId>
|
||||
</dependency>
|
||||
<!-- quartz定时任务 -->
|
||||
<dependency>
|
||||
<groupId>org.quartz-scheduler</groupId>
|
||||
<artifactId>quartz</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
|
||||
<dependency>
|
||||
<groupId>com.mchange</groupId>
|
||||
<artifactId>c3p0</artifactId>
|
||||
<version>0.9.5.5</version>
|
||||
</dependency>
|
||||
<!-- 配置多数据库源 -->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
|
|
|
@ -26,7 +26,7 @@ public class JobController {
|
|||
@PathVariable Integer page,
|
||||
@PathVariable Integer limit
|
||||
) {
|
||||
Page<JobList> pageParams = new Page<>();
|
||||
Page<JobList> pageParams = new Page<>(page,limit);
|
||||
PageResult<JobList> pageResult = jobService.pageQuery(pageParams);
|
||||
return Result.success(pageResult);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package cn.bunny.service.quartz;
|
||||
|
||||
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;
|
||||
|
||||
@Configuration
|
||||
public class QuartzConfiguration {
|
||||
|
||||
@Autowired
|
||||
private QuartzJobFactory quartzJobFactory;
|
||||
|
||||
//创建调度器工厂
|
||||
@Bean
|
||||
public SchedulerFactoryBean schedulerFactoryBean(){
|
||||
//1.创建SchedulerFactoryBean
|
||||
//2.加载自定义的quartz.properties配置文件
|
||||
//3.设置MyJobFactory
|
||||
SchedulerFactoryBean factoryBean=new SchedulerFactoryBean();
|
||||
try {
|
||||
factoryBean.setAutoStartup(true);
|
||||
factoryBean.setStartupDelay(3);//延时5秒启动
|
||||
factoryBean.setQuartzProperties(quartzProperties());
|
||||
factoryBean.setJobFactory(quartzJobFactory);
|
||||
return factoryBean;
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Properties quartzProperties() throws IOException {
|
||||
PropertiesFactoryBean propertiesFactoryBean=new PropertiesFactoryBean();
|
||||
propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties"));
|
||||
propertiesFactoryBean.afterPropertiesSet();
|
||||
return propertiesFactoryBean.getObject();
|
||||
}
|
||||
|
||||
@Bean(name="scheduler")
|
||||
public Scheduler scheduler(){
|
||||
return schedulerFactoryBean().getScheduler();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package cn.bunny.service.quartz;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.quartz.spi.TriggerFiredBundle;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
|
||||
import org.springframework.scheduling.quartz.AdaptableJobFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class QuartzJobFactory extends AdaptableJobFactory {
|
||||
|
||||
// 这个对象Spring会帮我们自动注入进来
|
||||
@Autowired
|
||||
private AutowireCapableBeanFactory capableBeanFactory;
|
||||
|
||||
// 重写创建Job任务的实例方法
|
||||
@NotNull
|
||||
@Override
|
||||
protected Object createJobInstance(@NotNull TriggerFiredBundle bundle) throws Exception {
|
||||
Object jobInstance = super.createJobInstance(bundle);
|
||||
// 通过以下方式,解决Job任务无法使用Spring中的Bean问题
|
||||
capableBeanFactory.autowireBean(jobInstance);
|
||||
return super.createJobInstance(bundle);
|
||||
}
|
||||
}
|
|
@ -8,7 +8,7 @@ spring:
|
|||
name: bunny-service
|
||||
datasource:
|
||||
dynamic:
|
||||
primary: quartz #设置默认的数据源或者数据源组,默认值即为master
|
||||
primary: master #设置默认的数据源或者数据源组,默认值即为master
|
||||
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
|
||||
grace-destroy: false #是否优雅关闭数据源,默认为false,设置为true时,关闭数据源时如果数据源中还存在活跃连接,至多等待10s后强制关闭
|
||||
datasource:
|
||||
|
@ -41,11 +41,13 @@ spring:
|
|||
jackson:
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
time-zone: GMT+8
|
||||
|
||||
quartz:
|
||||
# 使用数据库连接
|
||||
job-store-type: jdbc
|
||||
jdbc:
|
||||
# 是否设置
|
||||
initialize-schema: embedded
|
||||
scheduler-name: quartzScheduler
|
||||
auto-startup: true
|
||||
wait-for-jobs-to-complete-on-shutdown: true
|
||||
overwrite-existing-jobs: false
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
org.quartz.scheduler.instanceName=quartzScheduler
|
||||
org.quartz.threadPool.threadCount=5
|
||||
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
|
||||
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
|
||||
org.quartz.jobStore.tablePrefix=QRTZ_
|
||||
org.quartz.jobStore.dataSource=myDS
|
||||
org.quartz.dataSource.myDS.driver=com.mysql.cj.jdbc.Driver
|
||||
org.quartz.dataSource.myDS.URL=jdbc:mysql://106.15.251.123:3305/myDS?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
|
||||
org.quartz.dataSource.myDS.user=root
|
||||
org.quartz.dataSource.myDS.password=02120212
|
||||
org.quartz.dataSource.myDS.maxConnections=5
|
Loading…
Reference in New Issue