流程
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.