Я использую Spring Integration с Redis.Производитель использует RedisQueueOutboundGateway, а с другой стороны у получателя есть поток, определенный с помощью RedisQueueInboundGateway.
При чтении из документации я нашел следующее предложение
Должен быть настроен исполнитель задачис более чем одним потоком для обработки
Мне нужно иметь параллельные исполнения, чтобы ускорить обработку запросов, но я вижу, что всегда есть один поток, даже если я настроил пользовательский ThreadPoolTaskExecutorкак следующий
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(40);
executor.setQueueCapacity(40);
executor.setThreadNamePrefix("QueueAsyncExecutor-");
executor.initialize();
return executor;
}
, и использование этого пула потоков
final RedisQueueInboundGateway rqig = new RedisQueueInboundGateway(finalDestination, jedisConnectionFactory);
rqig.setTaskExecutor(getAsyncExecutor());
Окончательный результат - последовательная обработка запросов, все выполняемые с тем же потоком, как я могу видеть изжурнал.Можно ли включить многопоточную обработку в этой ситуации?Как?