diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java index 05a8d416c..e0a7d2656 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java @@ -1,6 +1,5 @@ package org.nl.acs.auto.run; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; @@ -11,8 +10,6 @@ import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.agv.ndcone.AgvNdcOneDeviceDriver; import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver; import org.nl.acs.device_driver.autodoor.standard_autodoor.StandardAutodoorDeviceDriver; -import org.nl.acs.device_driver.conveyor.standard_inspect_site.StandardInspectSiteDeviceDriver; -import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.domain.Instruction; @@ -22,7 +19,6 @@ import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.DeviceAppService; import org.nl.config.SpringContextHolder; import org.nl.config.lucene.service.LuceneExecuteLogService; -import org.nl.config.lucene.service.dto.LuceneLogDto; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -31,13 +27,9 @@ import org.springframework.stereotype.Component; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.lang.reflect.Field; import java.net.InetSocketAddress; import java.net.Socket; import java.util.Date; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; import static org.nl.acs.agv.server.impl.NDCAgvServiceImpl.Bytes2HexString; @@ -46,7 +38,7 @@ import static org.nl.acs.agv.server.impl.NDCAgvServiceImpl.Bytes2HexString; @Component public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { - Socket s; + Socket socket; String ip = "192.168.46.225"; int port = 1234; static DataOutputStream dos; @@ -111,20 +103,20 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { InetSocketAddress socketAddress = new InetSocketAddress(ip, port); byte[] b = new byte[1024]; - s = new Socket(); - s.connect(socketAddress, 2 * 1000); - s.setKeepAlive(true);//长链接 + socket = new Socket(); + socket.connect(socketAddress, 2 * 1000); + socket.setKeepAlive(true);//长链接 // s.setSoTimeout(1000* 60 * 10);//读取超时时间 - dos = new DataOutputStream(s.getOutputStream()); - dis = new DataInputStream(s.getInputStream()); + dos = new DataOutputStream(socket.getOutputStream()); + dis = new DataInputStream(socket.getInputStream()); while (bConnected) { int count = dis.read(b); if (count == -1) { log.error("agv连接出现异常:服务端被关闭"); - if (ObjectUtil.isNotEmpty(s)) { - s.close(); + if (ObjectUtil.isNotEmpty(socket)) { + socket.close(); } break; } @@ -321,27 +313,17 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } } } catch (Exception e) { - - System.out.println("TwoAgv链接异常"); log.info("TwoAgv链接异常"); log.error("agv连接出现异常:{}", e); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code("agv连接出现异常") - .content("agv异常" + e.getMessage()) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); logServer.deviceExecuteLog("NDC2", "", "", "agv异常" + e.getMessage()); logServer.deviceExecuteLog("NDC2", "", "", "agv异常" + e); - if (ObjectUtil.isNotEmpty(s)) { - s.close(); + if (ObjectUtil.isNotEmpty(socket)) { + socket.close(); } System.out.println(e.getMessage()); - } finally { - - + closeResources(); } } @@ -350,10 +332,17 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { @Override public void stop() { super.after(); + closeResources(); + } + + + private void closeResources() { try { - s.close(); - } catch (Exception e) { - e.printStackTrace(); + if (dis != null) dis.close(); + if (dos != null) dos.close(); + if (socket != null && !socket.isClosed()) socket.close(); + } catch (IOException e) { + log.error("关闭资源时发生错误: {}", e.getMessage(), e); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java index ad9d7d4f6..0e21f286c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java @@ -257,7 +257,14 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements }); } //申请空托盘出库 - if (mode == 8 && !requireSucess) { +// if (mode == 8 && !requireSucess) { + if (true) { + List list = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("code", "to_target"); + map.put("value", "0"); + list.add(map); + this.writing(list); if (container_type == 0) { message = "托盘类型为空"; } else { @@ -765,11 +772,6 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java index f0ef25b2e..008b431b1 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.driver; +import lombok.extern.slf4j.Slf4j; import org.nl.acs.opc.*; import org.nl.acs.udw.UnifiedDataAccessor; import org.nl.acs.udw.UnifiedDataAccessorFactory; @@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.*; +@Slf4j public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements OpcDeviceDriver { UnifiedDataAccessor opcUdw; @@ -116,8 +118,8 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc ThreadUtl.sleep(100L); } - if (i >= 3) { -// log.info("写入次数超过3次而失败"); + if (i >= 2) { + log.info("写入次数超过3次而失败"); throw new RuntimeException("写入次数超过3次而失败"); } ++i; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java index 34387b0e2..02beaafd7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java @@ -716,11 +716,6 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java index 15e1c299e..8ee6d8f59 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java @@ -533,11 +533,6 @@ public class BoxSubvolumesConveyorDeviceDriver extends AbstractOpcDeviceDriver i this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java index 6ae6150f3..9724fbcad 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java @@ -757,11 +757,7 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java index 690f7df9d..dee687f7a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java @@ -594,11 +594,6 @@ public class FoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implements this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index 4fc5bbd68..344602fb7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -1070,11 +1070,6 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java index ecac2f048..373cc7933 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java @@ -482,11 +482,6 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java index d8e62ff6f..13bcbc7af 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java @@ -583,11 +583,6 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java index ff3a7c6a8..b6b5bf2bd 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java @@ -529,11 +529,6 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java index 0e353393b..f39e3c8c2 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java @@ -547,11 +547,6 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java index 3e84eba7b..648997bb0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java @@ -607,11 +607,6 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java index 27f824164..2c1ff4dfe 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java @@ -642,11 +642,6 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java index ea1377efb..948da4767 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java @@ -1391,11 +1391,6 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java index 43c20aee4..e3458ccb7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java @@ -201,11 +201,6 @@ public class ManipulatorAgvStationDeviceDriver extends AbstractOpcDeviceDriver i this.checkcontrol(itemMap); } catch (Exception e) { e.printStackTrace(); - try { - this.checkcontrol(itemMap); - } catch (Exception e1) { - e1.printStackTrace(); - } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java index cbc53fe61..21fc96e7a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java @@ -2,22 +2,21 @@ package org.nl.acs.opc; import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.DtpRegistry; +import org.dromara.dynamictp.core.executor.DtpExecutor; +import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.nl.acs.auto.run.AbstractAutoRunnable; import org.nl.acs.auto.run.AutoRunService; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.udw.UnifiedDataAccessor; import org.nl.acs.udw.UnifiedDataAccessorFactory; import org.nl.config.SpringContextHolder; -import org.nl.config.thread.TheadFactoryName; import org.nl.config.thread.ThreadPoolExecutorUtil; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; +import picocli.CommandLine; import javax.annotation.Resource; import java.lang.reflect.Field; -import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.*; @@ -38,10 +37,6 @@ public class DeviceExecuteAutoRun extends AbstractAutoRunnable { int loop_time_millions = 100; - @Resource - private ThreadPoolExecutor executorService; - - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(30); Map runs; @@ -98,7 +93,7 @@ public class DeviceExecuteAutoRun extends AbstractAutoRunnable { Thread.sleep(1000L); if (i > 60) { UnifiedDataAccessor accessor_value = UnifiedDataAccessorFactory.getAccessor(OpcConfig.udw_opc_value_key); - if(accessor_value.getAllKey().size() < 1){ + if (accessor_value.getAllKey().size() < 1) { autoRunService.startThread("DeviceOpcSynchronizeAutoRun"); } log.info("设备执行线程放弃等待opc同步线程..."); @@ -122,32 +117,6 @@ public class DeviceExecuteAutoRun extends AbstractAutoRunnable { @Override public void subRun() throws Exception { deviceDriver.executeAuto(); - /* ThreadPoolExecutor executor= DtpRegistry.getDtpExecutor("dtpExecutor1"); - - Future submit = executor.submit(() -> { - try { - deviceDriver.executeAuto(); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - try { - // 设置超时时间为 15 秒,如果任务超时,抛出 TimeoutException - submit.get(10, TimeUnit.SECONDS); - System.out.println(); - } catch (TimeoutException e) { - System.out.println("任务超时,取消任务!"); - // 使用反射获取 FutureTask 中的线程,并使用 Thread.stop() 强制终止 - Field runnerField = submit.getClass().getDeclaredField("runner"); - runnerField.setAccessible(true); - Thread runnerThread = (Thread) runnerField.get(submit); - if (runnerThread != null) { - runnerThread.stop(); // 强制终止线程(不推荐) - } - - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - }*/ } @Override @@ -159,74 +128,23 @@ public class DeviceExecuteAutoRun extends AbstractAutoRunnable { this.runs.put(deviceDriver.getDeviceCode(), runnable); } runnable.setIndex(this.runs); -// this.executorService.execute(runnable); - Future future = this.executorService.submit(runnable); - /* try { - // 设置超时时间为 30 秒,如果任务超时,抛出 TimeoutException - future.get(5, TimeUnit.SECONDS); - } catch (TimeoutException e) { - System.out.println("任务超时,取消任务!"); - // 超时后取消任务,并设置为 true 以中断执行中的线程 - future.cancel(true); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - }*/ + + ExecutorService executorService = (ExecutorService) ThreadPoolExecutorUtil.getPoll(); + Future future = executorService.submit(runnable); - //plc断连后强制终止线程 - /* try { - // 设置超时时间为 15 秒,如果任务超时,抛出 TimeoutException - future.get(15, TimeUnit.SECONDS); - } catch (TimeoutException e) { - System.out.println("任务超时,取消任务!"); - // 使用反射获取 FutureTask 中的线程,并使用 Thread.stop() 强制终止 - Field runnerField = future.getClass().getDeclaredField("runner"); - runnerField.setAccessible(true); - Thread runnerThread = (Thread) runnerField.get(future); - if (runnerThread != null) { - runnerThread.stop(); // 强制终止线程(不推荐) - } - - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - }*/ - - // 使用调度器在超时后取消任务 + ScheduledExecutorService scheduler = (ScheduledExecutorService) DtpRegistry.getExecutor("scheduled_pool"); + // 使用调度器在超时后取消任务 scheduler.schedule(() -> { if (!future.isDone()) { - -// future.cancel(true); // 尝试中断任务 -// Field runnerField = null; -// try { -// runnerField = future.getClass().getDeclaredField("runner"); -// runnerField.setAccessible(true); -// Thread runnerThread = (Thread) runnerField.get(future); -// if (runnerThread != null) { -// runnerThread.stop(); // 强制终止线程(不推荐) -// } -// } catch (Exception e) { -// throw new RuntimeException(e); -// } - try { - // 设置超时时间为 30 秒,如果任务超时,抛出 TimeoutException future.get(5, TimeUnit.SECONDS); - } catch (TimeoutException e) { - System.out.println("任务超时,取消任务!"); - // 超时后取消任务,并设置为 true 以中断执行中的线程 + } catch (Exception e) { future.cancel(true); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); } - - } - }, 5, TimeUnit.SECONDS); // 设置超时时间为10秒 - - - - + }, 1, TimeUnit.MILLISECONDS); // 设置超时时间为10秒 } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java index d5a8dec41..f7f00209d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java @@ -10,6 +10,7 @@ import org.jinterop.dcom.core.*; import org.nl.acs.device_driver.driver.ItemValue; import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; import org.nl.config.language.LangProcess; import org.openscada.opc.lib.common.ConnectionInformation; import org.openscada.opc.lib.da.*; @@ -44,7 +45,6 @@ public class OpcUtl { public static void writeValue(Group group, WriteRequest... requests) throws BadRequestException { try { Map e = null; - try { e = group.write(requests); // group.write(requests); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java index ab73632f1..5e3c0e648 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java @@ -35,7 +35,7 @@ public class ThreadPoolExecutorUtil { public static Executor getPoll(){ - return DtpRegistry.getExecutor("dtpExecutor1"); + return DtpRegistry.getExecutor("cool_pool"); /* AsyncTaskProperties properties = SpringContextHolder.getBean(AsyncTaskProperties.class); return new ThreadPoolExecutor( diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml index e14cb962f..42d9bf76e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application.yml @@ -51,22 +51,40 @@ spring: monitorInterval: 8 tomcatTp: # tomcat webserver 线程池配置 threadPoolAliasName: tomcat 线程池 # 线程池别名,可选 - corePoolSize: 10 + corePoolSize: 30 maximumPoolSize: 50 keepAliveTime: 60 runTimeout: 10000 queueTimeout: 100 executors: # 动态线程池配置,都有默认值,采用默认值的可以不配置该项,减少配置量 - - threadPoolName: dtpExecutor1 # 线程池名称,必填 + - threadPoolName: cool_pool # 线程池名称,必填dtpExecutor1 threadPoolAliasName: core_thread # 线程池别名,可选 executorType: common # 线程池类型 common、eager、ordered、scheduled、priority,默认 common - corePoolSize: 10 # 核心线程数,默认1 - maximumPoolSize: 30 # 最大线程数,默认cpu核数 + corePoolSize: 30 # 核心线程数,默认1 + maximumPoolSize: 50 # 最大线程数,默认cpu核数 queueCapacity: 1024 # 队列容量,默认1024 queueType: VariableLinkedBlockingQueue # 任务队列,查看源码QueueTypeEnum枚举类,默认VariableLinkedBlockingQueue rejectedHandlerType: CallerRunsPolicy # 拒绝策略,查看RejectedTypeEnum枚举类,默认AbortPolicy keepAliveTime: 30 # 空闲线程等待超时时间,默认60 threadNamePrefix: core_thread # 线程名前缀,默认dtp + tryInterrupt: true + allowCoreThreadTimeOut: true # 是否允许核心线程池超时,默认false + waitForTasksToCompleteOnShutdown: true # 参考spring线程池设计,优雅关闭线程池,默认true + awaitTerminationSeconds: 5 # 优雅关闭线程池时,阻塞等待线程池中任务执行时间,默认3,单位(s) + preStartAllCoreThreads: false # 是否预热所有核心线程,默认false + runTimeout: 2000 # 任务执行超时阈值,单位(ms),默认0(不统计) + queueTimeout: 1000 # 任务在队列等待超时阈值,单位(ms),默认0(不统计) + - threadPoolName: scheduled_pool # 线程池名称,必填 + threadPoolAliasName: scheduled_thread # 线程池别名,可选 + executorType: scheduled # 线程池类型 common、eager、ordered、scheduled、priority,默认 common + corePoolSize: 30 # 核心线程数,默认1 + maximumPoolSize: 50 # 最大线程数,默认cpu核数 + queueCapacity: 1024 # 队列容量,默认1024 + queueType: VariableLinkedBlockingQueue # 任务队列,查看源码QueueTypeEnum枚举类,默认VariableLinkedBlockingQueue + rejectedHandlerType: CallerRunsPolicy # 拒绝策略,查看RejectedTypeEnum枚举类,默认AbortPolicy + keepAliveTime: 30 # 空闲线程等待超时时间,默认60 + threadNamePrefix: scheduled_thread # 线程名前缀,默认dtp + tryInterrupt: true allowCoreThreadTimeOut: true # 是否允许核心线程池超时,默认false waitForTasksToCompleteOnShutdown: true # 参考spring线程池设计,优雅关闭线程池,默认true awaitTerminationSeconds: 5 # 优雅关闭线程池时,阻塞等待线程池中任务执行时间,默认3,单位(s) diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index 229eeefe3..4fd18503a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -12,7 +12,7 @@ https://juejin.cn/post/6844903775631572999 nlAdmin + value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %cyan(%msg%n)"/>