QueueConsumer защита от переполнения спамом логов

This commit is contained in:
AKurakin 2023-05-03 19:02:00 +03:00
parent 2ad812d603
commit 29b47b8b96
2 changed files with 11 additions and 1 deletions

View file

@ -99,7 +99,6 @@ public interface Consts {
String SDF11_PROCESS = "sdf11-process";
String EXPORT_PROCESS = "export-process";
String S_TRADES_IMPORTED = "s_trades-imported";
String ACCOUNT_NEW = "account-new";
String ACCOUNT_TERMINATION = "account-termination";
String BALANCE_ACCOUNT_NEW = "balance-account-new";
String BALANCE_ACCOUNT_UPDATE = "balance-account-update";

View file

@ -80,6 +80,7 @@ public class QueueConsumer implements AutoCloseable {
consumer.subscribe(callbacks.keySet());
}
Object o = null;
int lastErrors = 0;
while (!closed.get()) {
try {
ConsumerRecords<String, Object> records = consumer.poll(Duration.of(10, ChronoUnit.SECONDS));
@ -95,11 +96,21 @@ public class QueueConsumer implements AutoCloseable {
}
}
}
lastErrors = 0;
} catch (Throwable e) {
log.error(ExceptionUtils.getStackTrace(e));
if (producer != null && o != null) {
sendErrorResponse((BaseRequest<?>) o);
}
if (lastErrors++ > 20) {
log.warn("Too many error at row, {}. Sleep.", lastErrors);
try {
Thread.sleep(1000L);
} catch (InterruptedException ie) {
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(ie));
break;
}
}
}
}
} catch (WakeupException e) {