Selaa lähdekoodia

【代码优化】IoT: 更新 HttpPlugin,重构线程池初始化逻辑以确保线程池活跃

安浩浩 7 kuukautta sitten
vanhempi
sitoutus
8ca9bebfd1

+ 9 - 4
yudao-module-iot/yudao-module-iot-plugin/yudao-module-iot-http-plugin/src/main/java/cn/iocoder/yudao/module/iot/plugin/HttpPlugin.java

@@ -19,12 +19,12 @@ public class HttpPlugin extends Plugin {
 
     private static final int PORT = 8092;
 
-    private final ExecutorService executorService;
+    private ExecutorService executorService;
     private DeviceDataApi deviceDataApi;
 
     public HttpPlugin(PluginWrapper wrapper) {
         super(wrapper);
-        // 创建单线程池
+        // 初始化线程池
         this.executorService = Executors.newSingleThreadExecutor();
     }
 
@@ -32,6 +32,11 @@ public class HttpPlugin extends Plugin {
     public void start() {
         log.info("HttpPlugin.start()");
 
+        // 重新初始化线程池,确保它是活跃的
+        if (executorService.isShutdown() || executorService.isTerminated()) {
+            executorService = Executors.newSingleThreadExecutor();
+        }
+
         // 从 ServiceRegistry 中获取主程序暴露的 DeviceDataApi 接口实例
         deviceDataApi = ServiceRegistry.getService(DeviceDataApi.class);
         if (deviceDataApi == null) {
@@ -79,11 +84,11 @@ public class HttpPlugin extends Plugin {
             future.channel().closeFuture().sync();
         } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
-            log.error("HTTP 服务启动中断", e);
+            log.warn("HTTP 服务启动被中断", e);
         } finally {
             bossGroup.shutdownGracefully();
             workerGroup.shutdownGracefully();
         }
     }
 
-}
+}