问题遇到的现象和发生背景
JedisConnectionFactory was destroyed and cannot be used anymore
用代码块功能插入代码,请勿粘贴截图
@PostConstruct
public void cusumerAlarm() {
// 创建一个单线程的执行器
ExecutorService executorService = Executors.newSingleThreadExecutor();
// 放入循环消费消息的任务
executorService.execute(() -> {
// 循环出队
while (true) {
try {
// 读取备份list,存在则先消费备份list
AlarmNoticeVO alarmNoticeVO = gson.fromJson( (String)redisTemplate.opsForList().rightPop(RedisConfig.CLIENT_ALARM_TOPIC),AlarmNoticeVO.class);
if (alarmNoticeVO == null) {
alarmNoticeVO = gson.fromJson((String)redisTemplate.opsForList()
.rightPop(RedisConfig.CLIENT_ALARM_TOPIC, 10, TimeUnit.SECONDS),AlarmNoticeVO.class);
}
// 无消息时,开始下一轮
if (alarmNoticeVO == null) {
continue;
}
// 进行业务处理
cdaAlarmDetailsService.dealAlarm(alarmNoticeVO);
} catch (Exception e) {
// 异常捕获,防止循环因异常停止
log.error(e.getMessage());
}
}
});
}
运行结果及报错内容
我想要达到的结果
启动可以正常消费redis