Выключение вызывается несколько раз - PullRequest
0 голосов
/ 09 июля 2020

Я использую веб-сокет весенней загрузки для создания брокера сообщений в памяти. Я хочу иметь контроль над созданными потоками, поэтому я определил свои пулы потоков:

@Bean(name = "myTaskExecutor", destroyMethod = "shutdown")
public ThreadPoolTaskExecutor myTaskExecutor() {
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    executor.setCorePoolSize(1);
    executor.setMaxPoolSize(4);
    executor.setThreadNamePrefix("myTaskExecutor-");
    executor.initialize();
    return executor;
}
@Bean(name = "myTaskScheduler", destroyMethod = "shutdown")
public TaskScheduler myTaskScheduler() {
    ThreadPoolTaskScheduler executor= new ThreadPoolTaskScheduler();
    executor.setPoolSize(4);
    executor.setThreadNamePrefix("myTaskScheduler-");
    executor.initialize();
    return ex;
}

Затем я установил их:

@Override
        public void configureClientInboundChannel(ChannelRegistration registration) {
            registration.taskExecutor(myTaskExecutor);
        }
        
        @Override
        public void configureClientOutboundChannel(ChannelRegistration registration) {
            registration.taskExecutor(myTaskExecutor);
        }

        @Override
        public void configureMessageBroker(MessageBrokerRegistry config) {
  config.enableSimpleBroker(DESTINATIONS)
            .setTaskScheduler(myTaskScheduler).setHeartbeatValue(HEARTBEAT_CONF);
        }

Проблема в том, что кажется, что уничтожение называется множественным time, а также пулы по умолчанию:

Завершение работы ExecutorService 'brokerChannelExecutor'

Завершение работы ExecutorService 'messageBrokerTaskScheduler'

Завершение работы ExecutorService 'clientOutboundChannelExecutor'

Завершение работы ExecutorService 'clientOutboundChannelExecutor'

Завершение работы ExecutorService 'clientOute 1027 *

Завершение работы ExecutorService 'clientOutboundChannelExecutor'

Завершение работы ExecutorService 'myTaskScheduler'

Завершение работы ExecutorScheduler 'myTaskorScheduler' myTaskorScheduler

Почему?

...