From 9823e5f36d011347c22ada699cdc594c38724db1 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 14 十一月 2024 15:31:15 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java | 213 +++++------------------------------------------------ 1 files changed, 20 insertions(+), 193 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java index c5dbffb..a28cb5b 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java @@ -16,20 +16,22 @@ import com.zy.acs.manager.manager.service.CodeService; import com.zy.acs.manager.manager.websocket.MapWebSocket; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** * Created by vincent on 10/14/2024 */ @Component public class MapDataWsScheduler { + + private ExecutorService singleThreadExecutor; @Autowired private AgvService agvService; @@ -42,22 +44,19 @@ @Autowired private MapDataDispatcher mapDataDispatcher; - int i = 0; + @PostConstruct + public void init() { + this.singleThreadExecutor = Executors.newSingleThreadExecutor(); + this.singleThreadExecutor.execute(() -> { + try { Thread.sleep(200); } catch (InterruptedException ignore) {} + while (!Thread.currentThread().isInterrupted()) { - @Scheduled(cron = "0/1 * * * * ? ") - public void broadcast() { - i++; - int key; - if (i > 10) { - i=0; - } - key = i /2; -// MapWebSocket.broadcast(mockData.get(key)); - - - MapWsVo mapWsVo = new MapWsVo(); - mapWsVo.setAgvVos(syncAgv()); - MapWebSocket.broadcast(GsonUtils.toJson(mapWsVo)); + MapWsVo mapWsVo = new MapWsVo(); + mapWsVo.setAgvVos(syncAgv()); + MapWebSocket.broadcast(GsonUtils.toJson(mapWsVo)); + try { Thread.sleep(500); } catch (InterruptedException ignore) {} + } + }); } private List<MapWsAgvVo> syncAgv() { @@ -91,181 +90,9 @@ return agvVos; } - - - - - - private static final Map<Integer, String> mockData = new ConcurrentHashMap<>(); - - @PostConstruct - public void init() { - mockData.put(1, - "{\n" + - " \"agvVos\": [\n" + - " {\n" + - " \"agvNo\": \"1\",\n" + - " \"code\": \"00000002\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - " \"00000002\",\n" + - " \"00000003\",\n" + - " \"00000004\"\n" + - " ]\n" + - " },\n" + - " {\n" + - " \"agvNo\": \"2\",\n" + - " \"code\": \"00000063\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - " \"00000063\",\n" + - " \"00000062\",\n" + - " \"00000061\",\n" + - " \"00000060\",\n" + - " \"00000059\"\n" + - " ]\n" + - " }\n" + - " ]\n" + - "}" - ); - mockData.put(2, -"{\n" + - " \"agvVos\": [\n" + - " {\n" + - " \"agvNo\": \"1\",\n" + - " \"code\": \"00000003\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - " \"00000003\",\n" + - " \"00000004\"\n" + - " ]\n" + - " },\n" + - " {\n" + - " \"agvNo\": \"2\",\n" + - " \"code\": \"00000062\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - " \n" + - " \"00000062\",\n" + - " \"00000061\",\n" + - " \"00000060\",\n" + - " \"00000059\"\n" + - " ]\n" + - " }\n" + - " ]\n" + - "}" - - ); - - mockData.put(3, - "{\n" + - " \"agvVos\": [\n" + - " {\n" + - " \"agvNo\": \"1\",\n" + - " \"code\": \"00000004\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - " \n" + - " \"00000004\"\n" + - " ]\n" + - " },\n" + - " {\n" + - " \"agvNo\": \"2\",\n" + - " \"code\": \"00000061\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - "\n" + - " \"00000061\",\n" + - " \"00000060\",\n" + - " \"00000059\"\n" + - " ]\n" + - " }\n" + - " ]\n" + - "}" - ); - - mockData.put(4, - "{\n" + - " \"agvVos\": [\n" + - " {\n" + - " \"agvNo\": \"1\",\n" + - " \"code\": \"00000004\",\n" + - " \"direction\": 120,\n" + - " \"dynamicRoute\": [\n" + - " \"00000004\"\n" + - " ]\n" + - " },\n" + - " {\n" + - " \"agvNo\": \"2\",\n" + - " \"code\": \"00000060\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - "\n" + - " \"00000060\",\n" + - " \"00000059\"\n" + - " ]\n" + - " }\n" + - " ]\n" + - "}" - ); - - mockData.put(5, - "{\n" + - " \"agvVos\": [\n" + - " {\n" + - " \"agvNo\": \"1\",\n" + - " \"code\": \"00000004\",\n" + - " \"direction\": 180,\n" + - " \"dynamicRoute\": [\n" + - " \"00000004\"\n" + - " ]\n" + - " },\n" + - " {\n" + - " \"agvNo\": \"2\",\n" + - " \"code\": \"00000059\",\n" + - " \"direction\": 90,\n" + - " \"dynamicRoute\": [\n" + - "\n" + - " \"00000059\"\n" + - " ]\n" + - " }\n" + - " ]\n" + - "}" - - ); + @PreDestroy + public void destroy() { + this.singleThreadExecutor.shutdownNow(); } } - - -/** - - { - "agvVos": [ - { - "agvNo": "1", - "code": "00000002", - "direction": 90, - "dynamicRoute": [ - "00000002", - "00000003", - "00000004" - ] - }, - { - "agvNo": "2", - "code": "00000063", - "direction": 90, - "dynamicRoute": [ - "00000063", - "00000062", - "00000061", - "00000060", - "00000059" - ] - } - ] - } - ] - } - */ \ No newline at end of file -- Gitblit v1.9.1