Dock-MultiCtrl/admin/src/main/java/com/multictrl/common/config/MqttThreadConfig.java

32 lines
1.1 KiB
Java
Raw Normal View History

2026-05-12 11:06:16 +08:00
package com.multictrl.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.*;
/**
* MQTT线程池配置 + Channel绑定
*/
@Configuration
public class MqttThreadConfig {
@Bean("mqttExecutor1")
public ExecutorService mqttExecutor1() {
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 20, 60L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(200), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy());
// JVM关闭时优雅关闭线程池
Runtime.getRuntime().addShutdownHook(new Thread(executor::shutdown));
return executor;
}
@Bean("mqttExecutor2")
public ExecutorService mqttExecutor2() {
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 20, 60L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(200), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy());
// JVM关闭时优雅关闭线程池
Runtime.getRuntime().addShutdownHook(new Thread(executor::shutdown));
return executor;
}
}