feat(修改): 修改文件配置,指定数据库

This commit is contained in:
Bunny 2024-07-26 23:49:07 +08:00
parent cc2d8b9d82
commit 116d1e6e18
7 changed files with 107 additions and 16 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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);
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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

View File

@ -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