projects
/
demos
/
kafka
/
training
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Die Implementierung speichert Zustand & Offsets vor _jedem_ `poll()`
[demos/kafka/training]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
EndlessConsumer.java
diff --git
a/src/main/java/de/juplo/kafka/EndlessConsumer.java
b/src/main/java/de/juplo/kafka/EndlessConsumer.java
index
f0e74d3
..
92802b9
100644
(file)
--- a/
src/main/java/de/juplo/kafka/EndlessConsumer.java
+++ b/
src/main/java/de/juplo/kafka/EndlessConsumer.java
@@
-25,7
+25,7
@@
public class EndlessConsumer<K, V> implements Runnable
private final String id;
private final String topic;
private final Consumer<K, V> consumer;
private final String id;
private final String topic;
private final Consumer<K, V> consumer;
- private final
Consumer
RebalanceListener rebalanceListener;
+ private final RebalanceListener rebalanceListener;
private final RecordHandler<K, V> recordHandler;
private final Lock lock = new ReentrantLock();
private final RecordHandler<K, V> recordHandler;
private final Lock lock = new ReentrantLock();
@@
-67,11
+67,14
@@
public class EndlessConsumer<K, V> implements Runnable
consumed++;
}
consumed++;
}
+
+ rebalanceListener.beforeNextPoll();
}
}
catch(WakeupException e)
{
}
}
catch(WakeupException e)
{
- log.info("{} - RIIING! Request to stop consumption.", id);
+ log.info("{} - RIIING! Request to stop consumption - commiting current offsets!", id);
+ consumer.commitSync();
shutdown();
}
catch(RecordDeserializationException e)
shutdown();
}
catch(RecordDeserializationException e)
@@
-85,6
+88,7
@@
public class EndlessConsumer<K, V> implements Runnable
offset,
e.getCause().toString());
offset,
e.getCause().toString());
+ consumer.commitSync();
shutdown(e);
}
catch(Exception e)
shutdown(e);
}
catch(Exception e)