From 6047f24edc72a13b71813c3fb6cc0d087c0f6cd7 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 29 十二月 2025 12:46:35 +0800
Subject: [PATCH] yys 巡检定时任务持久化
---
/dev/null | 93 ---------------
main-business/src/main/java/com/ruoyi/business/task/QuartzConfig.java | 64 ++++++++++
ruoyi-quartz/pom.xml | 4
main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskScheduler.java | 80 ++++++++-----
basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java | 18 +-
main-business/src/main/java/com/ruoyi/business/task/TimingTaskJob.java | 7
main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskServiceImpl.java | 8 +
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java | 24 +++
basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java | 20 +-
9 files changed, 166 insertions(+), 152 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 2186ae5..5547a57 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -72,21 +72,21 @@
public int addOrEditCustomer(CustomerDto customerDto) {
Customer customer = new Customer();
BeanUtils.copyProperties(customerDto, customer);
- if (customerDto.getBids().size() != 3) {
- throw new RuntimeException("璇烽�夋嫨缁忚惀鍦板潃鐪佸競鍖�");
+ if (customerDto.getBids() != null && customerDto.getBids().size() == 3) {
+ customer.setBusinessProvinceId(customerDto.getBids().get(0));
+ customer.setBusinessCityId(customerDto.getBids().get(1));
+ customer.setBusinessDistrictId(customerDto.getBids().get(2));
}
- if (customerDto.getCids().size() != 3) {
- throw new RuntimeException("璇烽�夋嫨鑱旂郴鍦板潃鐪佸競鍖�");
+ if (customerDto.getCids() != null && customerDto.getCids().size() == 3) {
+ customer.setProvinceId(customerDto.getCids().get(0));
+ customer.setCityId(customerDto.getCids().get(1));
+ customer.setDistrictId(customerDto.getCids().get(2));
}
- customer.setBusinessProvinceId(customerDto.getBids().get(0));
- customer.setBusinessCityId(customerDto.getBids().get(1));
- customer.setBusinessDistrictId(customerDto.getBids().get(2));
- customer.setProvinceId(customerDto.getCids().get(0));
- customer.setCityId(customerDto.getCids().get(1));
- customer.setDistrictId(customerDto.getCids().get(2));
+
+
if (Objects.isNull(customerDto.getId())) {
return customerMapper.insert(customer);
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java
index fdf4c45..8b163c0 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/SupplyServiceImpl.java
@@ -67,21 +67,19 @@
public int addOrEditSupply(SupplyDto supplyDto) {
Supply supply = new Supply();
BeanUtils.copyProperties(supplyDto, supply);
- if (supplyDto.getBids().size() != 3) {
- throw new RuntimeException("璇烽�夋嫨缁忚惀鍦板潃鐪佸競鍖�");
+ if (supplyDto.getBids() != null && supplyDto.getBids().size() == 3) {
+ supply.setBProvinceId(supplyDto.getBids().get(0));
+ supply.setBCityId(supplyDto.getBids().get(1));
+ supply.setBDistrictId(supplyDto.getBids().get(2));
}
- if (supplyDto.getCids().size() != 3) {
- throw new RuntimeException("璇烽�夋嫨鑱旂郴鍦板潃鐪佸競鍖�");
+ if (supplyDto.getCids() != null && supplyDto.getCids().size() == 3) {
+ supply.setCProvinceId(supplyDto.getCids().get(0));
+ supply.setCCityId(supplyDto.getCids().get(1));
+ supply.setCDistrictId(supplyDto.getCids().get(2));
}
- supply.setBProvinceId(supplyDto.getBids().get(0));
- supply.setBCityId(supplyDto.getBids().get(1));
- supply.setBDistrictId(supplyDto.getBids().get(2));
- supply.setCProvinceId(supplyDto.getCids().get(0));
- supply.setCCityId(supplyDto.getCids().get(1));
- supply.setCDistrictId(supplyDto.getCids().get(2));
if (Objects.isNull(supplyDto.getId())) {
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskScheduler.java b/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskScheduler.java
index 9927845..2b7f1a2 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskScheduler.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskScheduler.java
@@ -43,13 +43,18 @@
throw new SchedulerException("Existing trigger is not a CronTrigger");
}
- // 鏋勫缓鏂拌Е鍙戝櫒
- Trigger newTrigger = TriggerBuilder.newTrigger()
- .withIdentity(triggerKey)
- .withDescription(task.getTaskName())
- .withSchedule(CronScheduleBuilder.cronSchedule(convertToCronExpression(task)))
- .startAt(Date.from(task.getNexExecutionTime().atZone(ZoneId.systemDefault()).toInstant()))
- .forJob(oldTrigger.getJobKey())
+ // 3. 鏋勫缓CronTrigger锛岀‘淇濇寔涔呭寲閰嶇疆
+ CronTrigger newTrigger = TriggerBuilder.newTrigger()
+ .withIdentity(triggerKey) // 鍞竴鏍囪瘑锛岀敤浜庢寔涔呭寲瀛樺偍
+ .withDescription(task.getTaskName() + "_TRIGGER") // 瑙﹀彂鍣ㄦ弿杩�
+ .forJob(oldTrigger.getJobKey()) // 鍏宠仈瀵瑰簲鐨凧ob
+ .withSchedule(CronScheduleBuilder
+ .cronSchedule(convertToCronExpression(task)) // 閿欒繃鎵ц鏃剁殑绛栫暐锛堟牴鎹笟鍔¤皟鏁达級
+ )
+ // 4. 璁剧疆寮�濮嬫椂闂达紙鑻ヤ负null鍒欑珛鍗崇敓鏁堬級
+ .startAt(task.getNexExecutionTime() != null
+ ? Date.from(task.getNexExecutionTime().atZone(ZoneId.systemDefault()).toInstant())
+ : new Date())
.build();
scheduler.rescheduleJob(triggerKey, newTrigger);
@@ -74,40 +79,55 @@
/**
* 鍒犻櫎浠诲姟
*/
- public void unscheduleTimingTask(Long taskId) throws SchedulerException {
- JobKey jobKey = new JobKey("timingTask_" + taskId);
- scheduler.deleteJob(jobKey);
+ public void unscheduleTimingTask(Long taskId) {
+ try{
+ JobKey jobKey = new JobKey("timingTask_" + taskId);
+ scheduler.deleteJob(jobKey);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
}
private JobDetail buildJobDetail(TimingTask task) {
- JobDataMap jobDataMap = new JobDataMap();
- jobDataMap.put("taskId", task.getId());
+ // 1. 鏋勫缓鍞竴JobKey锛堝熀浜庝换鍔D锛岀‘淇濋噸鍚悗鑳借瘑鍒級
+ JobKey jobKey = new JobKey("timingTask_" + task.getId());
+ // 2. 灏佽浠诲姟鏁版嵁锛堜粎浣跨敤鍩烘湰绫诲瀷锛岀‘淇濆彲搴忓垪鍖栵級
+ JobDataMap jobDataMap = new JobDataMap();
+ jobDataMap.put("taskId", task.getId().toString()); // 浠诲姟ID锛圠ong锛屽彲搴忓垪鍖栵級
+ // 鎸夐渶娣诲姞鍏朵粬蹇呰鐨勫熀鏈被鍨嬪弬鏁�
+
+ // 3. 鏋勫缓JobDetail锛岃缃寔涔呭寲鐩稿叧灞炴��
return JobBuilder.newJob(TimingTaskJob.class)
- .withIdentity("timingTask_" + task.getId())
- .withDescription(task.getTaskName())
- .usingJobData(jobDataMap)
- .storeDurably()
+ .withIdentity(jobKey) // 鍞竴鏍囪瘑锛岀敤浜庢寔涔呭寲瀛樺偍
+ .withDescription(task.getTaskName()) // 浠诲姟鎻忚堪锛屽瓨鍏ユ暟鎹簱
+ .usingJobData(jobDataMap) // 缁戝畾浠诲姟鏁版嵁
+ .storeDurably(true) // 鍗充娇娌℃湁瑙﹀彂鍣ㄥ叧鑱斾篃鎸佷箙鍖栦繚瀛�
+ .requestRecovery(true) // 褰撹皟搴﹀櫒宕╂簝鍚庢仮澶嶆椂锛岄噸鏂版墽琛屾湭瀹屾垚鐨勪换鍔�
.build();
}
private Trigger buildJobTrigger(TimingTask task, JobDetail jobDetail) {
+ // 1. 鏋勫缓鍞竴TriggerKey锛堝熀浜庝换鍔D锛�
+ TriggerKey triggerKey = new TriggerKey("trigger_" + task.getId());
+
+ // 2. 鐢熸垚Cron琛ㄨ揪寮忥紙鍘熼�昏緫涓嶅彉锛�
String cronExpression = convertToCronExpression(task);
- TriggerBuilder<CronTrigger> triggerBuilder = TriggerBuilder.newTrigger()
- .withIdentity("trigger_" + task.getId())
- .withDescription(task.getTaskName())
- .withSchedule(CronScheduleBuilder.cronSchedule(cronExpression));
-
- if (jobDetail != null) {
- triggerBuilder.forJob(jobDetail);
- }
-
- if (task.getNexExecutionTime() != null) {
- triggerBuilder.startAt(Date.from(task.getNexExecutionTime().atZone(ZoneId.systemDefault()).toInstant()));
- }
-
- return triggerBuilder.build();
+ // 3. 鏋勫缓CronTrigger锛岀‘淇濇寔涔呭寲閰嶇疆
+ return TriggerBuilder.newTrigger()
+ .withIdentity(triggerKey) // 鍞竴鏍囪瘑锛岀敤浜庢寔涔呭寲瀛樺偍
+ .withDescription(task.getTaskName() + "_TRIGGER") // 瑙﹀彂鍣ㄦ弿杩�
+ .forJob(jobDetail) // 鍏宠仈瀵瑰簲鐨凧ob
+ .withSchedule(CronScheduleBuilder
+ .cronSchedule(cronExpression)
+ .withMisfireHandlingInstructionDoNothing() // 閿欒繃鎵ц鏃剁殑绛栫暐锛堟牴鎹笟鍔¤皟鏁达級
+ )
+ // 4. 璁剧疆寮�濮嬫椂闂达紙鑻ヤ负null鍒欑珛鍗崇敓鏁堬級
+ .startAt(task.getNexExecutionTime() != null
+ ? Date.from(task.getNexExecutionTime().atZone(ZoneId.systemDefault()).toInstant())
+ : new Date())
+ .build();
}
private String convertToCronExpression(TimingTask task) {
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskServiceImpl.java
index cb3911d..47bae19 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/TimingTaskServiceImpl.java
@@ -400,6 +400,12 @@
@Override
public int delByIds(Long[] ids) {
- return timingTaskMapper.deleteByIds(Arrays.asList(ids));
+ int i = timingTaskMapper.deleteByIds(Arrays.asList(ids));
+// if (i > 0) {
+// for (Long id : ids) {
+// timingTaskScheduler.unscheduleTimingTask(id);
+// }
+// }
+ return i;
}
}
diff --git a/main-business/src/main/java/com/ruoyi/business/task/QuartzConfig.java b/main-business/src/main/java/com/ruoyi/business/task/QuartzConfig.java
new file mode 100644
index 0000000..62832ba
--- /dev/null
+++ b/main-business/src/main/java/com/ruoyi/business/task/QuartzConfig.java
@@ -0,0 +1,64 @@
+package com.ruoyi.business.task;
+
+import org.quartz.Scheduler;
+import org.quartz.spi.TriggerFiredBundle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+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 SchedulerFactoryBean schedulerFactoryBean() {
+ SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
+
+ // 閰嶇疆SpringBeanJobFactory锛岀敤浜庢敮鎸丣ob涓殑渚濊禆娉ㄥ叆
+ AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory();
+ 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 {
+
+ private transient AutowireCapableBeanFactory beanFactory;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) {
+ this.beanFactory = applicationContext.getAutowireCapableBeanFactory();
+ }
+
+ @Override
+ protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
+ Object jobInstance = super.createJobInstance(bundle);
+ // 灏咼ob瀹炰緥浜ょ粰Spring瀹瑰櫒绠$悊锛屼娇鍏惰兘澶熻繘琛屼緷璧栨敞鍏�
+ beanFactory.autowireBean(jobInstance);
+ return jobInstance;
+ }
+ }
+}
\ No newline at end of file
diff --git a/main-business/src/main/java/com/ruoyi/business/task/TimingTaskJob.java b/main-business/src/main/java/com/ruoyi/business/task/TimingTaskJob.java
index e642756..2db1aad 100644
--- a/main-business/src/main/java/com/ruoyi/business/task/TimingTaskJob.java
+++ b/main-business/src/main/java/com/ruoyi/business/task/TimingTaskJob.java
@@ -8,15 +8,16 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import java.io.Serializable;
import java.time.LocalDateTime;
@Component
@DisallowConcurrentExecution // 绂佹骞跺彂鎵ц鍚屼竴涓狫ob
-public class TimingTaskJob implements Job {
+public class TimingTaskJob implements Job,Serializable {
+ private static final long serialVersionUID = 1L; // 蹇呴』瀹氫箟搴忓垪鍖朓D
@Autowired
- private
- TimingTaskService timingTaskService;
+ private TimingTaskService timingTaskService;
@Autowired
private InspectionTaskMapper inspectionTaskMapper;
diff --git a/ruoyi-admin/src/main/resources/application.yml.example b/ruoyi-admin/src/main/resources/application.yml.example
deleted file mode 100644
index 6d4220e..0000000
--- a/ruoyi-admin/src/main/resources/application.yml.example
+++ /dev/null
@@ -1,124 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
- # 鍚嶇О
- name: RuoYi
- # 鐗堟湰
- version: 3.8.9
- # 鐗堟潈骞翠唤
- copyrightYear: 2025
- # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
- profile: D:/Backup/妗岄潰/download
- # 鑾峰彇ip鍦板潃寮�鍏�
- addressEnabled: false
- # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
- captchaType: math
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
- # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
- port: 7016
- servlet:
- # 搴旂敤鐨勮闂矾寰�
- context-path: /
- tomcat:
- # tomcat鐨刄RI缂栫爜
- uri-encoding: UTF-8
- # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
- accept-count: 1000
- threads:
- # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
- max: 800
- # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
- min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
- level:
- com.ruoyi: debug
- org.springframework: warn
-
-# 鐢ㄦ埛閰嶇疆
-user:
- password:
- # 瀵嗙爜鏈�澶ч敊璇鏁�
- maxRetryCount: 10
- # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
- lockTime: 1
-
-# Spring閰嶇疆
-spring:
- # 璧勬簮淇℃伅
- messages:
- # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
- basename: i18n/messages
- profiles:
- active: docker
- # 鏂囦欢涓婁紶
- servlet:
- multipart:
- # 鍗曚釜鏂囦欢澶у皬
- max-file-size: 10MB
- # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
- max-request-size: 20MB
- # 鏈嶅姟妯″潡
- devtools:
- restart:
- # 鐑儴缃插紑鍏�
- enabled: false
-
- flyway:
- enabled: true
- baseline-on-migrate: true
- baseline-version: 20230720000000
- clean-disabled: true
- out-of-order: true
- #鎸囧畾sql鏂囦欢璺緞
- locations:
- - classpath:db/migration/postgresql
-
-# token閰嶇疆
-token:
- # 浠ょ墝鑷畾涔夋爣璇�
- header: Authorization
- # 浠ょ墝瀵嗛挜
- secret: abcdefghijklmnopqrstuvwxyz
- # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
- expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
- # 鎼滅储鎸囧畾鍖呭埆鍚�
- typeAliasesPackage: com.ruoyi.**.domain
- # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
- mapperLocations: classpath*:mapper/**/*Mapper.xml
- # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
- configLocation: classpath:mybatis/mybatis-config.xml
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
- helperDialect: mysql
- supportMethodsArguments: true
- params: count=countSql
-
-# Springdoc閰嶇疆
-springdoc:
- api-docs:
- path: /v3/api-docs
- swagger-ui:
- enabled: true
- path: /swagger-ui.html
- tags-sorter: alpha
- group-configs:
- - group: 'default'
- display-name: '娴嬭瘯妯″潡'
- paths-to-match: '/**'
- packages-to-scan: com.ruoyi.web.controller.tool
-
-# 闃叉XSS鏀诲嚮
-xss:
- # 杩囨护寮�鍏�
- enabled: true
- # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
- excludes: /system/notice
- # 鍖归厤閾炬帴
- urlPatterns: /system/*,/monitor/*,/tool/*
diff --git a/ruoyi-admin/src/main/resources/logback.xml.example b/ruoyi-admin/src/main/resources/logback.xml.example
deleted file mode 100644
index afdb6d7..0000000
--- a/ruoyi-admin/src/main/resources/logback.xml.example
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
- <!-- 鏃ュ織瀛樻斁璺緞 -->
- <property name="log.path" value="C:/Users/12631/Desktop/download/logs" />
- <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
- <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
- <!-- 鎺у埗鍙拌緭鍑� -->
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- </appender>
-
- <!-- 绯荤粺鏃ュ織杈撳嚭 -->
- <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/sys-info.log</file>
- <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
- <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
- <maxHistory>60</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <!-- 杩囨护鐨勭骇鍒� -->
- <level>INFO</level>
- <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
- <onMatch>ACCEPT</onMatch>
- <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/sys-error.log</file>
- <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
- <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
- <maxHistory>60</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <!-- 杩囨护鐨勭骇鍒� -->
- <level>ERROR</level>
- <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
- <onMatch>ACCEPT</onMatch>
- <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 鐢ㄦ埛璁块棶鏃ュ織杈撳嚭 -->
- <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/sys-user.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 鎸夊ぉ鍥炴粴 daily -->
- <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
- <maxHistory>60</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- </appender>
-
- <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗 -->
- <logger name="com.ruoyi" level="info" />
- <!-- Spring鏃ュ織绾у埆鎺у埗 -->
- <logger name="org.springframework" level="warn" />
-
- <root level="info">
- <appender-ref ref="console" />
- </root>
-
- <!--绯荤粺鎿嶄綔鏃ュ織-->
- <root level="info">
- <appender-ref ref="file_info" />
- <appender-ref ref="file_error" />
- </root>
-
- <!--绯荤粺鐢ㄦ埛鎿嶄綔鏃ュ織-->
- <logger name="sys-user" level="info">
- <appender-ref ref="sys-user"/>
- </logger>
-</configuration>
\ No newline at end of file
diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml
index 0421087..7d39ac6 100644
--- a/ruoyi-quartz/pom.xml
+++ b/ruoyi-quartz/pom.xml
@@ -34,6 +34,10 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>main-business</artifactId>
+ </dependency>
</dependencies>
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java
index 78ebef8..09834b4 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java
@@ -1,6 +1,10 @@
package com.ruoyi.quartz.service.impl;
import java.util.List;
+
+import com.ruoyi.business.entity.TimingTask;
+import com.ruoyi.business.mapper.TimingTaskMapper;
+import com.ruoyi.business.service.impl.TimingTaskScheduler;
import jakarta.annotation.PostConstruct;
import org.quartz.JobDataMap;
import org.quartz.JobKey;
@@ -31,17 +35,27 @@
@Autowired
private SysJobMapper jobMapper;
+ @Autowired
+ private TimingTaskMapper timingTaskMapper;
+
+ @Autowired
+ private TimingTaskScheduler timingTaskScheduler;
+
/**
* 椤圭洰鍚姩鏃讹紝鍒濆鍖栧畾鏃跺櫒 涓昏鏄槻姝㈡墜鍔ㄤ慨鏀规暟鎹簱瀵艰嚧鏈悓姝ュ埌瀹氭椂浠诲姟澶勭悊锛堟敞锛氫笉鑳芥墜鍔ㄤ慨鏀规暟鎹簱ID鍜屼换鍔$粍鍚嶏紝鍚﹀垯浼氬鑷磋剰鏁版嵁锛�
*/
@PostConstruct
public void init() throws SchedulerException, TaskException
{
- scheduler.clear();
- List<SysJob> jobList = jobMapper.selectJobAll();
- for (SysJob job : jobList)
- {
- ScheduleUtils.createScheduleJob(scheduler, job);
+// scheduler.clear();
+// List<SysJob> jobList = jobMapper.selectJobAll();
+// for (SysJob job : jobList)
+// {
+// ScheduleUtils.createScheduleJob(scheduler, job);
+// }
+ List<TimingTask> timingTasks = timingTaskMapper.selectList(null);
+ for (TimingTask timingTask : timingTasks) {
+ timingTaskScheduler.scheduleTimingTask(timingTask);
}
}
--
Gitblit v1.9.3