From 2d8ca7e583ef767d17aee1f18c06b75464a981c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E9=94=90=E6=B3=A2?= <10549902+zhuangruibo@user.noreply.gitee.com> Date: Fri, 3 Apr 2026 23:39:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5Quartz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/pom.xml | 1 + ruoyi-common/ruoyi-common-bom/pom.xml | 7 +++ ruoyi-common/ruoyi-common-quartz/pom.xml | 36 ++++++++++++++ .../config/QuartzAutoConfiguration.java | 49 +++++++++++++++++++ .../common/quartz/job/DemoTimeJob.java | 25 ++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../003-删除暂时没有作用的表.sql | 4 +- zdxt-web-server/zdxt-admin-web-server/pom.xml | 5 ++ .../src/main/resources/application-dev.yml | 6 +++ .../src/main/resources/application.yml | 6 +++ 10 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-quartz/pom.xml create mode 100644 ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/config/QuartzAutoConfiguration.java create mode 100644 ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/job/DemoTimeJob.java create mode 100644 ruoyi-common/ruoyi-common-quartz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 2930fd0..55dc6b7 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -34,6 +34,7 @@ ruoyi-common-tenant ruoyi-common-websocket ruoyi-common-sse + ruoyi-common-quartz ruoyi-common diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index 00b7e7f..a847fa3 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -179,6 +179,13 @@ ${revision} + + + org.dromara + ruoyi-common-quartz + ${revision} + + diff --git a/ruoyi-common/ruoyi-common-quartz/pom.xml b/ruoyi-common/ruoyi-common-quartz/pom.xml new file mode 100644 index 0000000..92f8396 --- /dev/null +++ b/ruoyi-common/ruoyi-common-quartz/pom.xml @@ -0,0 +1,36 @@ + + + + org.dromara + ruoyi-common + ${revision} + + 4.0.0 + + ruoyi-common-quartz + + + ruoyi-common-quartz Quartz定时任务 + + + + + + org.springframework.boot + spring-boot-starter-quartz + + + + org.projectlombok + lombok + + + + org.dromara + ruoyi-common-core + + + + diff --git a/ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/config/QuartzAutoConfiguration.java b/ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/config/QuartzAutoConfiguration.java new file mode 100644 index 0000000..89ccc4c --- /dev/null +++ b/ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/config/QuartzAutoConfiguration.java @@ -0,0 +1,49 @@ +package org.dromara.common.quartz.config; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.quartz.job.DemoTimeJob; +import org.quartz.*; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; + +/** + * Quartz 自动配置 + * + * @author ruoyi + */ +@Slf4j +@AutoConfiguration +@ComponentScan("org.dromara.common.quartz") +public class QuartzAutoConfiguration { + + public QuartzAutoConfiguration() { + log.info("初始化 Quartz 定时任务配置"); + } + + /** + * Demo任务详情 + */ + @Bean + public JobDetail demoTimeJobDetail() { + return JobBuilder.newJob(DemoTimeJob.class) + .withIdentity("demoTimeJob", "demo") + .storeDurably() + .build(); + } + + /** + * Demo任务触发器 - 每秒执行一次 + */ + @Bean + public Trigger demoTimeJobTrigger(JobDetail demoTimeJobDetail) { + return TriggerBuilder.newTrigger() + .forJob(demoTimeJobDetail) + .withIdentity("demoTimeTrigger", "demo") + .withSchedule(SimpleScheduleBuilder.simpleSchedule() + .withIntervalInSeconds(1) + .repeatForever()) + .build(); + } + +} diff --git a/ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/job/DemoTimeJob.java b/ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/job/DemoTimeJob.java new file mode 100644 index 0000000..f17daa4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-quartz/src/main/java/org/dromara/common/quartz/job/DemoTimeJob.java @@ -0,0 +1,25 @@ +package org.dromara.common.quartz.job; + +import lombok.extern.slf4j.Slf4j; +import org.quartz.JobExecutionContext; +import org.springframework.scheduling.quartz.QuartzJobBean; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * 演示定时任务 - 每秒打印当前时间 + * + * @author ruoyi + */ +@Slf4j +public class DemoTimeJob extends QuartzJobBean { + + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Override + protected void executeInternal(JobExecutionContext context) { + log.info("[Quartz Demo] 当前时间: {}", LocalDateTime.now().format(FORMATTER)); + } + +} diff --git a/ruoyi-common/ruoyi-common-quartz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-quartz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..595a941 --- /dev/null +++ b/ruoyi-common/ruoyi-common-quartz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.dromara.common.quartz.config.QuartzAutoConfiguration diff --git a/script/sql/zfjd-refactoring-v1/003-删除暂时没有作用的表.sql b/script/sql/zfjd-refactoring-v1/003-删除暂时没有作用的表.sql index effa61b..8522517 100644 --- a/script/sql/zfjd-refactoring-v1/003-删除暂时没有作用的表.sql +++ b/script/sql/zfjd-refactoring-v1/003-删除暂时没有作用的表.sql @@ -15,7 +15,7 @@ drop table twkf_movelog; drop table twkf_moveset; drop table twkf_return_info; # Quartz Scheduler -drop table qrtz_blob_triggers; +/*drop table qrtz_blob_triggers; drop table qrtz_calendars; drop table qrtz_cron_triggers; drop table qrtz_fired_triggers; @@ -25,7 +25,7 @@ drop table qrtz_scheduler_state; drop table qrtz_simple_triggers; drop table qrtz_simprop_triggers; drop table qrtz_triggers; -drop table qrtz_job_details; +drop table qrtz_job_details;*/ # question相关 drop table question_answer; drop table question_bank; diff --git a/zdxt-web-server/zdxt-admin-web-server/pom.xml b/zdxt-web-server/zdxt-admin-web-server/pom.xml index 3269a41..fbdadaf 100644 --- a/zdxt-web-server/zdxt-admin-web-server/pom.xml +++ b/zdxt-web-server/zdxt-admin-web-server/pom.xml @@ -76,6 +76,11 @@ ruoyi-job + + org.dromara + ruoyi-common-quartz + + org.dromara diff --git a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml index 0fe69ab..9ec8459 100644 --- a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml +++ b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml @@ -36,6 +36,12 @@ snail-job: # 客户端ip指定 host: +--- # Quartz 定时任务配置 +spring: + quartz: + # 是否自动启动调度器,设为false则禁用全部定时任务 + auto-startup: true + --- # 数据源配置 spring: datasource: diff --git a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml index 9f5066b..8d6adc3 100644 --- a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml +++ b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml @@ -249,6 +249,12 @@ websocket: # 设置访问源地址 allowedOrigins: '*' +--- # Quartz 定时任务配置 +spring: + quartz: + # 是否自动启动调度器,设为false则禁用全部定时任务 + auto-startup: true + --- # warm-flow工作流配置 warm-flow: # 是否开启工作流,默认true