From 20888804da4934037b1d07c8f3e90e587554bdc8 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Sat, 12 Oct 2024 10:39:51 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=90=AF=E5=81=9C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=94=81=E5=AE=9A=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/cac/controller/IecServerController.java | 11 +++++++++++ .../java/com/xydl/cac/iec/RealTimeDataService.java | 1 + 2 files changed, 12 insertions(+) diff --git a/src/main/java/com/xydl/cac/controller/IecServerController.java b/src/main/java/com/xydl/cac/controller/IecServerController.java index b4ecb6d..f078b64 100644 --- a/src/main/java/com/xydl/cac/controller/IecServerController.java +++ b/src/main/java/com/xydl/cac/controller/IecServerController.java @@ -1,5 +1,6 @@ package com.xydl.cac.controller; +import com.xydl.cac.exception.BusinessException; import com.xydl.cac.iec.IecServerService; import com.xydl.cac.iec.RealTimeDataService; import com.xydl.cac.model.Response; @@ -30,16 +31,26 @@ public class IecServerController extends BasicController { @PostMapping("start") @ApiOperation("启动IEC服务端") public Response start(@Validated @NotNull(message = "fileId不能为空!") Integer fileId) throws Exception { + if (RealTimeDataService.inDoing) { + throw new BusinessException("请稍后再操作"); + } + RealTimeDataService.inDoing = true; iecServerService.startServer(fileId); realTimeDataService.start(); + RealTimeDataService.inDoing = false; return Response.success("OK"); } @PostMapping("stop") @ApiOperation("停止IEC服务端") public Response stop() throws Exception { + if (RealTimeDataService.inDoing) { + throw new BusinessException("请稍后再操作"); + } + RealTimeDataService.inDoing = true; realTimeDataService.stop(); iecServerService.stop(); + RealTimeDataService.inDoing = false; return Response.success("OK"); } diff --git a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java index 2fbf75a..e679e38 100644 --- a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java +++ b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java @@ -25,6 +25,7 @@ public class RealTimeDataService { public static HashMap dataMap = new HashMap<>(); public static IecServer iecServer = null; + public static boolean inDoing = false; HashMap clientMap = new HashMap<>(); public void start() {