From 57ef34ebf53868b8367402e61a4abacd298d4b6e Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sun, 31 Jan 2021 22:07:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90monitor=E3=80=91=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/controller/MonitorController.java | 9 ++--- .../timer/SystemHardwareInfoHolder.java | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 src/main/java/cn/stylefeng/guns/modular/system/monitor/timer/SystemHardwareInfoHolder.java diff --git a/src/main/java/cn/stylefeng/guns/modular/system/monitor/controller/MonitorController.java b/src/main/java/cn/stylefeng/guns/modular/system/monitor/controller/MonitorController.java index ef5be248..e50dfa91 100644 --- a/src/main/java/cn/stylefeng/guns/modular/system/monitor/controller/MonitorController.java +++ b/src/main/java/cn/stylefeng/guns/modular/system/monitor/controller/MonitorController.java @@ -5,7 +5,7 @@ import cn.hutool.core.util.StrUtil; import cn.stylefeng.guns.core.consts.ProjectConstants; import cn.stylefeng.guns.modular.system.monitor.model.PromResultInfo; import cn.stylefeng.guns.modular.system.monitor.service.MetricService; -import cn.stylefeng.guns.modular.system.monitor.warpper.SystemHardwareWrapper; +import cn.stylefeng.guns.modular.system.monitor.timer.SystemHardwareInfoHolder; import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource; import com.alibaba.fastjson.JSON; @@ -42,6 +42,9 @@ public class MonitorController { @Resource private MetricService service; + @Resource + private SystemHardwareInfoHolder systemHardwareInfoHolder; + /** * 系统硬件信息页面 * @@ -50,9 +53,7 @@ public class MonitorController { */ @GetResource(name = "服务器监控", path = "/view/monitor/systemInfo") public String systemInfo(Model model) { - SystemHardwareWrapper systemHardwareWrapper = new SystemHardwareWrapper(); - systemHardwareWrapper.copyTo(); - model.addAttribute("server", systemHardwareWrapper); + model.addAttribute("server", systemHardwareInfoHolder.getSystemHardwareInfo()); return "/modular/system/monitor/systemInfo.html"; } diff --git a/src/main/java/cn/stylefeng/guns/modular/system/monitor/timer/SystemHardwareInfoHolder.java b/src/main/java/cn/stylefeng/guns/modular/system/monitor/timer/SystemHardwareInfoHolder.java new file mode 100644 index 00000000..2375a997 --- /dev/null +++ b/src/main/java/cn/stylefeng/guns/modular/system/monitor/timer/SystemHardwareInfoHolder.java @@ -0,0 +1,35 @@ +package cn.stylefeng.guns.modular.system.monitor.timer; + +import cn.stylefeng.guns.modular.system.monitor.warpper.SystemHardwareWrapper; +import cn.stylefeng.roses.kernel.timer.api.TimerAction; +import org.springframework.stereotype.Component; + +/** + * 定时刷新服务器状态信息 + * + * @author fengshuonan + * @date 2021/1/31 21:52 + */ +@Component +public class SystemHardwareInfoHolder implements TimerAction { + + private SystemHardwareWrapper systemHardwareWrapper = null; + + @Override + public void action() { + SystemHardwareWrapper newInfo = new SystemHardwareWrapper(); + newInfo.copyTo(); + systemHardwareWrapper = newInfo; + } + + public SystemHardwareWrapper getSystemHardwareInfo() { + if (systemHardwareWrapper != null) { + return systemHardwareWrapper; + } + + systemHardwareWrapper = new SystemHardwareWrapper(); + systemHardwareWrapper.copyTo(); + return systemHardwareWrapper; + } + +}