Нулевой subscriptionExecutor при запуске контейнера в конфигурации - PullRequest
0 голосов
/ 27 мая 2020

В моем проекте у меня следующая конфигурация:

@Configuration
public class BusConfiguration{

     @Bean
     public RedisMessageListenerContainer messageListenerContainer(RedisConnectionFactory eventBusConnectionFactory,List<MyAbstractListener> listeners ) {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer();

    container.setConnectionFactory(eventBusConnectionFactory);
//        container.setTaskExecutor(eventBusPoolExecutor); <--need this
//        container.setSubscriptionExecutor(eventBusPoolExecutor); <--need this


    listeners.forEach( listener -> container.addMessageListener(new MessageListenerAdapter(listener), listener.getTopic()));
    container.start(); <--breaks!
    return container;
}
}

Кажется, что если я явно не устанавливаю исполнитель задачи и исполнитель подписки, метод start () прерывается с исключением нулевого указателя. Я проверил код, и кажется, что исполнитель подписки пуст, однако, просмотрев документацию по redis, он должен по умолчанию использовать Spring SimpleAsyncTaskExecutor.

Это похоже на то, что этот исполнитель еще не готов ...

...