订单超时未支付 redis处理未支付订单 redis监听失效的key

应用场景 (举一个商城项目的栗子)

提交订单后, 把订单保存到表后, 也把订单的id放到redis中, 失效时间30分钟, 若30分钟内未付款, 则添加库存, 修改订单状态等等业务逻辑

单机版使用DelayQueue解决方法 点击查看 

注入 RedisMessageListenerContainer

    @Beanpublic RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {RedisMessageListenerContainer container = new RedisMessageListenerContainer();container.setConnectionFactory(connectionFactory);return container;}

 监听器

@Component
public class KeyExpiredListener extends KeyExpirationEventMessageListener {@Autowiredpublic RedisTemplate redisTemplate;public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) {super(listenerContainer);}// 有key失效就会调用message方法 返回key@Overridepublic void onMessage(Message message, byte[] bytes) {String key = new String(message.getBody(), StandardCharsets.UTF_8);// 业务逻辑}
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部