From 00e3e465859114706fa2f802a9b4d3dbbee17a36 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 13 十一月 2020 16:54:51 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/ServerBootstrap.java | 102 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 98 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index b532458..3e034da 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -1,9 +1,15 @@ package com.zy.core; -import com.alibaba.fastjson.JSON; +import com.zy.core.cache.MessageQueue; +import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.CrnSlave; +import com.zy.core.model.DevpSlave; import com.zy.core.properties.SlaveProperties; +import com.zy.core.thread.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @@ -18,14 +24,102 @@ @Autowired private SlaveProperties slaveProperties; + @Autowired + private MainProcess mainProcess; @PostConstruct - public void init(){ - System.out.println(JSON.toJSONString(slaveProperties)); - + @Async + public void init() throws InterruptedException { + log.info("鏍稿績鎺у埗灞傚紑濮嬪垵濮嬪寲..............................................."); + Thread.sleep(2000); + // 鍒濆鍖栨秷鎭槦鍒� + initMq(); + // 鍒濆鍖栦笅浣嶆満绾跨▼ + initThread(); + // 寮�濮嬩富娴佺▼杩涚▼ + mainProcess.start(); + log.info("鏍稿績鎺у埗灞傚凡鍚姩..............................................."); } + private void initMq(){ + // 鍒濆鍖栧爢鍨涙満mq + for (Slave crn : slaveProperties.getCrn()) { + MessageQueue.init(SlaveType.Crn, crn); + } + // 鍒濆鍖栬緭閫佺嚎mq + for (Slave devp : slaveProperties.getDevp()) { + MessageQueue.init(SlaveType.Devp, devp); + } + // 鍒濆鍖栨潯鐮佹壂鎻忎华mq + for (Slave barcode : slaveProperties.getBarcode()) { + MessageQueue.init(SlaveType.Barcode, barcode); + } + // 鍒濆鍖朙ed鐏痬q + for (Slave led : slaveProperties.getLed()) { + MessageQueue.init(SlaveType.Led, led); + } + // 鍒濆鍖栫绉癿q + for (Slave scale : slaveProperties.getScale()) { + MessageQueue.init(SlaveType.Scale, scale); + } + // 鍒濆鍖栧彴杞q + for (Slave car : slaveProperties.getCar()) { + MessageQueue.init(SlaveType.Car, car); + } + } + + private void initThread(){ + // 鍒濆鍖栧爢鍨涙満绾跨▼ + log.info("鍒濆鍖栧爢鍨涙満绾跨▼..................................................."); + for (CrnSlave crn : slaveProperties.getCrn()) { + CrnThread crnThread = null; + switch (crn.getId()) { + case 1: + crnThread = new SiemensCrnThread(crn); + break; + case 2: + crnThread = new MelsecCrnThread(crn); + break; + default: + break; + } + new Thread((Runnable) crnThread).start(); + SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread); + } + + // 鍒濆鍖栬緭閫佺嚎绾跨▼ + log.info("鍒濆鍖栬緭閫佺嚎绾跨▼..................................................."); + for (DevpSlave devp : slaveProperties.getDevp()) { + DevpThread devpThread = new DevpThread(devp); + new Thread(devpThread).start(); + SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread); + } + + // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼ + log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼..................................................."); + for (Slave barcode : slaveProperties.getBarcode()) { + BarcodeThread barcodeThread = new BarcodeThread(barcode); + new Thread(barcodeThread).start(); + SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); + } + // 鍒濆鍖朙ED绾跨▼ +// log.info("鍒濆鍖朙ED绾跨▼..................................................."); +// for (LedSlave led : slaveProperties.getLed()) { +// LedThread ledThread = new LedThread(led); +// new Thread(ledThread).start(); +// SlaveConnection.put(SlaveType.Led, led.getId(), ledThread); +// } + // 鍒濆鍖栧彴杞︾嚎绋� + log.info("鍒濆鍖栧彴杞︾嚎绋�..................................................."); + for (Slave car : slaveProperties.getCar()) { + CarThread carThread = new CarThread(car); + new Thread(carThread).start(); + SlaveConnection.put(SlaveType.Car, car.getId(), carThread); + } + } + + @PreDestroy public void destroy() { } -- Gitblit v1.9.1