@@ -9,12 +9,15 @@ import org.springframework.aot.hint.annotation.RegisterReflectionForBinding
99import org.springframework.context.annotation.Bean
1010import org.springframework.context.annotation.Configuration
1111import org.springframework.core.io.ClassPathResource
12+ import org.springframework.core.task.SimpleAsyncTaskExecutor
1213import org.springframework.data.redis.connection.RedisConnectionFactory
1314import org.springframework.data.redis.core.RedisKeyValueAdapter
1415import org.springframework.data.redis.core.RedisTemplate
1516import org.springframework.data.redis.core.convert.RedisCustomConversions
1617import org.springframework.data.redis.core.script.RedisScript
18+ import org.springframework.data.redis.listener.PatternTopic
1719import org.springframework.data.redis.listener.RedisMessageListenerContainer
20+ import org.springframework.data.redis.listener.adapter.MessageListenerAdapter
1821import org.springframework.data.redis.repository.configuration.EnableRedisRepositories
1922import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer
2023import org.springframework.data.redis.serializer.RedisSerializer
@@ -72,6 +75,11 @@ class RedisConfiguration {
7275 fun redisMessageListenerContainer (connectionFactory : RedisConnectionFactory ): RedisMessageListenerContainer {
7376 val container = RedisMessageListenerContainer ()
7477 container.setConnectionFactory(connectionFactory)
78+ val taskExecutor = SimpleAsyncTaskExecutor (" redisMessageListenerContainer-" )
79+ .apply { setVirtualThreads(true ) }
80+ container.setTaskExecutor(taskExecutor)
81+ // https://github.com/spring-projects/spring-data-redis/issues/2425
82+ container.addMessageListener(MessageListenerAdapter (), PatternTopic .of(" Dummy" ))
7583 return container
7684 }
7785
0 commit comments