В вашем коде есть бесконечный цикл.Это причина непрерывного выброса ошибки String key = stringRedisTemplate.opsForList().leftPop("key", 3, TimeUnit.SECONDS);
.
Чтобы остановить непрерывные ошибки, либо вы можете задать некоторые параметры для следующего цикла, либо поместить фрагмент кода вне следующего цикла
for (; ; ) {
try {
String key = stringRedisTemplate.opsForList().leftPop("key", 3, TimeUnit.SECONDS);
if (key != null) {
log.warn(key);
rateLimiter.acquire();
}
log.info("nothing.... ");
} catch (Exception e) {
errorRate.acquire();
if (!(e instanceof RedisCommandTimeoutException || e instanceof QueryTimeoutException)) {
log.error(e.getMessage(), e);
} else {
//ignore
}
}
}
Пожалуйста, прокомментируйте ниже, если у вас есть какие-либо дополнительные разъяснения.