流程
1. 下单 存redis key(token) value(orderId) ex失效时间
2. 超时redis的key回调方法. 判断key在库中订单状态
3.根据订单状态,做业务处理
具体操作
1.redis配置文件开启key过期回调
2.监听接口
@Configuration
public class RedisListenerConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory factory){
RedisMessageListenerContainer container=new RedisMessageListenerContainer();
container.setConnectionFactory(factory);
return container;
}
}
3.重写失效回调方法(这里的redis 的 key 最好做前缀处理,判断key前缀匹配然后查询 ,或者选定特定的库存储)
@Component
public class RedisKeyExpirationListerner extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListerner(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
/**
* 使用该方法监听 ,当我们的key失效的时候执行改方法
*/
@Override
public void onMessage(Message message, byte[] pattern) {
String keyExpira = message.toString();
System.out.println("keyExpira======>>>>>>"+keyExpira);
//拿到过期key ,处理业务逻辑
}
}
4.测试回调 ,开启redis客户端 存值设置超时时间2秒
4.