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

This commit is contained in:
安浩浩 2024-12-30 09:33:56 +08:00
parent 1a3c6756ab
commit 8ca9bebfd1
1 changed files with 9 additions and 4 deletions

View File

@ -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();
}
}
}
}