Redisのは、ファイルredis.confを変更します
通知-キースペース - イベントが見つかりExがオープンスペースボンド障害通知の前で行をキャンセルするために、この行をコメント
pom.xml SpringBootプロジェクトにおける輸入依存度
< 依存性> < のgroupId > org.springframework.boot </ のgroupId > < たartifactId >ばねブートスタータデータRedisの</ たartifactId > </ 依存>
KeyExpirationEventMessageListenerからプロジェクトと継承の新しいリスナー
@Component @ SLF4J パブリック クラス RedisKeyExpirationListener 拡張KeyExpirationEventMessageListener { @Autowired プライベートOrderServiceのOrderServiceの、 公共RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer){ スーパー(listenerContainer); } @Override 公共 のボイドのonMessage(メッセージメッセージ、バイト[]パターン){ // 自分自身を行うには、ユーザービジネスプロセスは)(message.toStringに注意を払うことができますキー取得できない場合があり expiredKey =文字列message.toString()を; log.info(「------------------ Redisのキー失敗;キー=「+expiredKey); IF (expiredKey.startsWith(GlobalConstant.RedisPrefixKey.ORDER_PREFIX)){ // 注文ORDERNO取得 文字列ORDERNOは= expiredKey.substring(expiredKey.lastIndexOf( ":")。+ 1 ); // 順に支給されますキャンセル(サービス残業) orderService.orderPaidTimeout(ORDERNO); } } }
新しい構成クラス
@Configuration パブリック クラスRedisListenerConfig { @Bean RedisMessageListenerContainer容器(RedisConnectionFactoryはconnectionFactory){ RedisMessageListenerContainerコンテナ = 新しいRedisMessageListenerContainer()。 container.setConnectionFactory(はconnectionFactory)。 戻り値のコンテナ。 } }
30分の無効な長さを設定する際に、ORDERNOのRedisのにキーを生成する際に注文します
Redisのは成功した支払指図書後のキーを削除し、そうでない場合は支払いが候補者がキャンセルされます成功しています