|
|
@@ -2,20 +2,29 @@ package com.fs.app.redis;
|
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
|
|
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
|
|
|
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
|
|
|
@Configuration
|
|
|
public class RedisConfiguration {
|
|
|
@Autowired
|
|
|
private RedisConnectionFactory redisConnectionFactory;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("threadPoolTaskExecutor")
|
|
|
+ private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
|
|
+
|
|
|
@Bean
|
|
|
public RedisMessageListenerContainer redisMessageListenerContainer() {
|
|
|
RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
|
|
|
redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
|
|
|
+
|
|
|
+ // 复用已有线程池,避免为每个消息创建新线程
|
|
|
+ redisMessageListenerContainer.setTaskExecutor(threadPoolTaskExecutor);
|
|
|
return redisMessageListenerContainer;
|
|
|
}
|
|
|
|