From baa8d6e60c6125e2f8108943e4f41d1ffbcd9656 Mon Sep 17 00:00:00 2001 From: lzh Date: Fri, 9 Jan 2026 17:41:49 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E3=80=90ops=E3=80=91=E9=98=9F?= =?UTF-8?q?=E5=88=97=E5=90=8C=E6=AD=A5JOB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ops/framework/job/queue/QueueSyncJob.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/framework/job/queue/QueueSyncJob.java diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/framework/job/queue/QueueSyncJob.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/framework/job/queue/QueueSyncJob.java new file mode 100644 index 0000000..d497b3c --- /dev/null +++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/framework/job/queue/QueueSyncJob.java @@ -0,0 +1,42 @@ +package com.viewsh.module.ops.framework.job.queue; + +import cn.hutool.core.util.StrUtil; +import com.viewsh.framework.tenant.core.job.TenantJob; +import com.viewsh.module.ops.service.queue.QueueSyncService; +import com.xxl.job.core.handler.annotation.XxlJob; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 队列同步 Job + * 定时将 MySQL 数据同步到 Redis + * + * @author lzh + */ +@Component +@Slf4j +public class QueueSyncJob { + + @Resource + private QueueSyncService queueSyncService; + + /** + * 定时同步任务:将最近1小时内变更的数据同步到 Redis + * 建议在 xxl-job 管理平台配置为每5分钟执行一次: + * + * @return 同步结果 + */ + @XxlJob("queueSyncJob") + @TenantJob // 多租户 + public String execute() { + try { + queueSyncService.syncMySQLToRedis(); + return "队列同步任务执行成功"; + } catch (Exception e) { + log.error("队列同步任务执行失败", e); + return StrUtil.format("队列同步任务执行失败: {}", e.getMessage()); + } + } +} +