⚡ feat(修改): 修改文件配置,指定数据库
This commit is contained in:
parent
cc2d8b9d82
commit
116d1e6e18
|
@ -25,5 +25,17 @@
|
||||||
<groupId>io.jsonwebtoken</groupId>
|
<groupId>io.jsonwebtoken</groupId>
|
||||||
<artifactId>jjwt</artifactId>
|
<artifactId>jjwt</artifactId>
|
||||||
</dependency>
|
</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>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -60,19 +60,7 @@
|
||||||
<groupId>org.aspectj</groupId>
|
<groupId>org.aspectj</groupId>
|
||||||
<artifactId>aspectjweaver</artifactId>
|
<artifactId>aspectjweaver</artifactId>
|
||||||
</dependency>
|
</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>
|
<dependency>
|
||||||
<groupId>com.baomidou</groupId>
|
<groupId>com.baomidou</groupId>
|
||||||
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
|
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class JobController {
|
||||||
@PathVariable Integer page,
|
@PathVariable Integer page,
|
||||||
@PathVariable Integer limit
|
@PathVariable Integer limit
|
||||||
) {
|
) {
|
||||||
Page<JobList> pageParams = new Page<>();
|
Page<JobList> pageParams = new Page<>(page,limit);
|
||||||
PageResult<JobList> pageResult = jobService.pageQuery(pageParams);
|
PageResult<JobList> pageResult = jobService.pageQuery(pageParams);
|
||||||
return Result.success(pageResult);
|
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
|
name: bunny-service
|
||||||
datasource:
|
datasource:
|
||||||
dynamic:
|
dynamic:
|
||||||
primary: quartz #设置默认的数据源或者数据源组,默认值即为master
|
primary: master #设置默认的数据源或者数据源组,默认值即为master
|
||||||
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
|
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
|
||||||
grace-destroy: false #是否优雅关闭数据源,默认为false,设置为true时,关闭数据源时如果数据源中还存在活跃连接,至多等待10s后强制关闭
|
grace-destroy: false #是否优雅关闭数据源,默认为false,设置为true时,关闭数据源时如果数据源中还存在活跃连接,至多等待10s后强制关闭
|
||||||
datasource:
|
datasource:
|
||||||
|
@ -41,11 +41,13 @@ spring:
|
||||||
jackson:
|
jackson:
|
||||||
date-format: yyyy-MM-dd HH:mm:ss
|
date-format: yyyy-MM-dd HH:mm:ss
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
|
|
||||||
quartz:
|
quartz:
|
||||||
|
# 使用数据库连接
|
||||||
job-store-type: jdbc
|
job-store-type: jdbc
|
||||||
jdbc:
|
jdbc:
|
||||||
|
# 是否设置
|
||||||
initialize-schema: embedded
|
initialize-schema: embedded
|
||||||
scheduler-name: quartzScheduler
|
|
||||||
auto-startup: true
|
auto-startup: true
|
||||||
wait-for-jobs-to-complete-on-shutdown: true
|
wait-for-jobs-to-complete-on-shutdown: true
|
||||||
overwrite-existing-jobs: false
|
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