|
|
|
@ -0,0 +1,37 @@ |
|
|
|
package com.inspect.analysis.service.impl; |
|
|
|
|
|
|
|
import com.inspect.analysis.constant.AnalyseConstants; |
|
|
|
import com.inspect.base.core.constant.Color; |
|
|
|
import com.inspect.base.redis.service.RedisService; |
|
|
|
|
|
|
|
import com.inspect.partrolresult.domain.AnalyseRequest; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.data.redis.connection.Message; |
|
|
|
import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; |
|
|
|
import org.springframework.data.redis.listener.RedisMessageListenerContainer; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
|
|
|
@Component |
|
|
|
public class AnalysisRedisKeyExpireListener extends KeyExpirationEventMessageListener { |
|
|
|
private final Logger log = LoggerFactory.getLogger(AnalysisRedisKeyExpireListener.class); |
|
|
|
|
|
|
|
@Resource |
|
|
|
private RedisService redisService; |
|
|
|
|
|
|
|
public AnalysisRedisKeyExpireListener(RedisMessageListenerContainer listenerContainer) { |
|
|
|
super(listenerContainer); |
|
|
|
} |
|
|
|
|
|
|
|
public void onMessage(Message message, byte[] pattern) { |
|
|
|
String expiredKey = message.toString(); |
|
|
|
log.info(Color.YELLOW + "Analysis RedisKey Expire: {}, pattern: {}" + Color.END, expiredKey, pattern); |
|
|
|
if(expiredKey.startsWith(AnalyseConstants.ANALYSE_FILTER_REQUEST)) { |
|
|
|
AnalyseRequest analyseRequest = (AnalyseRequest) redisService.redisTemplate.opsForValue().getAndDelete(expiredKey); |
|
|
|
log.info(Color.YELLOW + "Analysis RedisKey Expire Request: {}" + Color.END, analyseRequest); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |