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