延时队列有多种实现方式,可以使用mq来实现,也可以通过redis key过期事件监听来实现。
下面就来一个redis key过期事件监听的demo.
1.先引入redis的依赖。
<dependency>
<artifactId>spring-boot-starter-data-redis</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
2.配置redis监听器
@Configuration
public class RedisConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory){
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
3.实现监听处理逻辑
@Component
@Slf4j
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessa