From: Kai Moritz Date: Sun, 10 Nov 2024 14:49:10 +0000 (+0100) Subject: Version des `spring-consumer`, die einen Anwendungsfehler fängt und ignoriert X-Git-Tag: consumer/spring-consumer--logic-error--2025-04-signal-spickzettel X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fconsumer%2Fspring-consumer--logic-error;p=demos%2Fkafka%2Ftraining Version des `spring-consumer`, die einen Anwendungsfehler fängt und ignoriert --- diff --git a/src/main/java/de/juplo/kafka/ExampleConsumer.java b/src/main/java/de/juplo/kafka/ExampleConsumer.java index 1f5a5706..8eb4af42 100644 --- a/src/main/java/de/juplo/kafka/ExampleConsumer.java +++ b/src/main/java/de/juplo/kafka/ExampleConsumer.java @@ -54,12 +54,24 @@ public class ExampleConsumer implements Runnable log.info("{} - Received {} messages", id, records.count()); for (ConsumerRecord record : records) { - handleRecord( - record.topic(), - record.partition(), - record.offset(), - record.key(), - record.value()); + try + { + handleRecord( + record.topic(), + record.partition(), + record.offset(), + record.key(), + record.value()); + } + catch (NumberFormatException e) + { + log.error( + "{} - Ignoring invalid message for offset {} on partition {}: {}", + id, + record.offset(), + record.partition(), + record.value()); + } } } } @@ -87,8 +99,9 @@ public class ExampleConsumer implements Runnable Integer partition, Long offset, String key, - String value) + String message) { + long value = Long.parseLong(message.toString()); consumed++; log.info("{} - partition={}-{}, offset={}: {}={}", id, topic, partition, offset, key, value); }