From a78fb9a836c51b5b569b2c7da32d4d2fc2b58925 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 19 十二月 2025 10:41:41 +0800
Subject: [PATCH] yys 数据持久化
---
src/main/java/com/ruoyi/inspectiontask/service/impl/QuartzConfig.java | 36 ++++++++++++++++++++++++++++++++++++
src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java | 4 +++-
src/main/resources/application-dev.yml | 5 +++--
3 files changed, 42 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/QuartzConfig.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/QuartzConfig.java
index da332f1..3d7bf6f 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/QuartzConfig.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/QuartzConfig.java
@@ -1,5 +1,7 @@
package com.ruoyi.inspectiontask.service.impl;
+import org.quartz.JobDataMap;
+import org.quartz.Scheduler;
import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
@@ -7,13 +9,40 @@
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.scheduling.quartz.SpringBeanJobFactory;
+
+import javax.sql.DataSource;
@Configuration
public class QuartzConfig {
@Autowired
private ApplicationContext applicationContext;
+
+ // 鍋囪宸查厤缃悕涓篸ataSource鐨勬暟鎹簮Bean
+ @Autowired
+ private DataSource dataSource;
+
+ @Bean
+ public JobDetailFactoryBean jobDetail() {
+ JobDetailFactoryBean factory = new JobDetailFactoryBean();
+ factory.setJobClass(TimingTaskJob.class); // 浣犵殑鑷畾涔� Job 绫伙紙闇�瀹炵幇 Job 鎺ュ彛锛�
+
+ // 1. 鏍稿績锛氳缃负鎸佷箙鍖栦换鍔★紙蹇呴』锛屽惁鍒欎笉鍐欏叆 qrtz_job_details 鎴栭噸鍚竻鐞嗭級
+ factory.setDurability(true);
+
+ // 2. 鍙�夛細浠诲姟鎵ц宕╂簝鍚庯紝閲嶅惎鏃舵槸鍚︽仮澶嶆墽琛岋紙寤鸿寮�鍚級
+ factory.setRequestsRecovery(true);
+
+// // 3. 鍙�夛細璁剧疆 JobDataMap锛堣嫢闇�浼犻�掑弬鏁帮紝鍙傛暟闇�鍙簭鍒楀寲锛�
+// JobDataMap jobDataMap = new JobDataMap();
+// jobDataMap.put("key", "value"); // 绀轰緥鍙傛暟锛堣嫢鍙傛暟鏄嚜瀹氫箟瀵硅薄锛岄渶瀹炵幇 Serializable锛�
+// factory.setJobDataMap(jobDataMap);
+
+ return factory;
+ }
@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
@@ -24,10 +53,17 @@
jobFactory.setApplicationContext(applicationContext);
schedulerFactory.setJobFactory(jobFactory);
+ // 鍦╯chedulerFactoryBean()鏂规硶涓坊鍔�
+ schedulerFactory.setDataSource(dataSource);
// 鍏朵粬閰嶇疆...
return schedulerFactory;
}
+ @Bean
+ public Scheduler scheduler() {
+ return schedulerFactoryBean().getScheduler();
+ }
+
// 鑷畾涔塉obFactory锛屾敮鎸佽嚜鍔ㄦ敞鍏�
public static class AutowiringSpringBeanJobFactory extends SpringBeanJobFactory
implements ApplicationContextAware {
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java
index 1cfc748..44ad63d 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java
@@ -13,6 +13,7 @@
import javax.annotation.Resource;
import javax.sql.DataSource;
+import java.io.Serializable;
import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -23,7 +24,8 @@
@Component
@DisallowConcurrentExecution // 绂佹骞跺彂鎵ц鍚屼竴涓狫ob
-public class TimingTaskJob implements Job {
+public class TimingTaskJob implements Job, Serializable {
+ private static final long serialVersionUID = 1L; // 蹇呴』瀹氫箟搴忓垪鍖朓D
@Autowired
private TimingTaskMapper timingTaskMapper;
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 7f176c1..7f951bf 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -35,6 +35,7 @@
# 鏃ュ織閰嶇疆
logging:
level:
+ org.quartz: DEBUG
com.ruoyi: warn
org.springframework: warn
@@ -160,7 +161,7 @@
quartz:
job-store-type: jdbc # 浣跨敤鏁版嵁搴撳瓨鍌�
jdbc:
- initialize-schema: always # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
+ initialize-schema: never # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql # MySQL琛ㄧ粨鏋勮剼鏈�
properties:
org:
@@ -171,7 +172,7 @@
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate # MySQL閫傞厤
- tablePrefix: QRTZ_ # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
+ tablePrefix: qrtz_ # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
isClustered: false # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
clusterCheckinInterval: 10000
txIsolationLevelSerializable: true
--
Gitblit v1.9.3