wordpress RabbitMQ rest magento enums 虚拟机 sqlalchemy nuget react视频教程 java后台框架 ubuntu查看python版本 webapp打包 当前时间减一天 eclipse显示左边目录 mysql时间戳转日期 python加注释 python的def python做界面 python获取输入 java时间 java安装环境 java基础编程 java的输入 java定义 vb编程 acmecadconverter abaqus最新版本 忧思华光玉攻略 微信小程序提示框 js格式化时间 图片批量处理工具 collect iar下载 博途v14安装教程 tomcat修改端口 jq循环 oracle游标 换肤助手 vue动态路由 ae添加关键帧
当前位置: 首页 > 学习教程  > 编程语言

redis key过期监听实现延时队列

2020/7/24 10:00:58 文章标签:

         延时队列有多种实现方式,可以使用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(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    @Override
    public void onMessage(Message message, byte[] pattern) {
        String expiredKey = message.toString();
        log.info("expiredKey:{}", expiredKey);
    }
}

    4.添加一个有过期时间的key

    5. 控制台打印出过期key.

 

2020-07-24 09:50:25.220  INFO 924 --- [    container-2] c.e.d.config.RedisKeyExpirationListener  : expiredKey:a

  我们需要在onMessage方法里面实现自己的业务逻辑。


本文链接: http://www.dtmao.cc/news_show_50201.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?