Commit 8ca9bebfd1c8cdac3f64842df1d7c640ce68fa1c

Authored by 安浩浩
1 parent 1a3c6756

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

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 {
19 19  
20 20 private static final int PORT = 8092;
21 21  
22   - private final ExecutorService executorService;
  22 + private ExecutorService executorService;
23 23 private DeviceDataApi deviceDataApi;
24 24  
25 25 public HttpPlugin(PluginWrapper wrapper) {
26 26 super(wrapper);
27   - // 创建单线程池
  27 + // 初始化线程池
28 28 this.executorService = Executors.newSingleThreadExecutor();
29 29 }
30 30  
... ... @@ -32,6 +32,11 @@ public class HttpPlugin extends Plugin {
32 32 public void start() {
33 33 log.info("HttpPlugin.start()");
34 34  
  35 + // 重新初始化线程池,确保它是活跃的
  36 + if (executorService.isShutdown() || executorService.isTerminated()) {
  37 + executorService = Executors.newSingleThreadExecutor();
  38 + }
  39 +
35 40 // 从 ServiceRegistry 中获取主程序暴露的 DeviceDataApi 接口实例
36 41 deviceDataApi = ServiceRegistry.getService(DeviceDataApi.class);
37 42 if (deviceDataApi == null) {
... ... @@ -79,11 +84,11 @@ public class HttpPlugin extends Plugin {
79 84 future.channel().closeFuture().sync();
80 85 } catch (InterruptedException e) {
81 86 Thread.currentThread().interrupt();
82   - log.error("HTTP 服务启动中断", e);
  87 + log.warn("HTTP 服务启动被中断", e);
83 88 } finally {
84 89 bossGroup.shutdownGracefully();
85 90 workerGroup.shutdownGracefully();
86 91 }
87 92 }
88 93  
89 94 -}
  95 +}
90 96 \ No newline at end of file
... ...