TMP producer/spring-producer--Shutdown-Hängt
authorKai Moritz <kai@juplo.de>
Thu, 26 Sep 2024 08:32:01 +0000 (10:32 +0200)
committerKai Moritz <kai@juplo.de>
Thu, 26 Sep 2024 08:45:27 +0000 (10:45 +0200)
commit22cbed2e155172b8f214214ff4c49d1013c7a80e
tree161c5f2d398dd17ea151e8d17bdffc008ce1b312
parentc4d30b707dcaee0f538b58412faeab1941c639df
TMP
--
Als Holzweg erachtet.
Es ist eigentlich viel einfacher, nur einen Thread zu pfelgen.
Das sollte mit weniger Boilerplate-Code möglich sein, als dieser Ansatz.
Der eigentlich Auslöser für den Abbruch war aber ein mysteriöses Problem beim Debugging.
Beim Shutdown wurde immer der Default von 30 Sekunden auf die Bean `applicationTaskExecutor` gewartet.
Das macht eigentlich gar keinen Sinn, weil (die letzen verzweifelten Commits) eigentlich noch mal sicher gestellt hatten, dass _alle_ explizit ausgeführten Beans wirklich beendet werden.
Es war also die Frage, auf welche Beans gewartet wird.
Warten tut da `DefaultLifecycleProcessor#stop`.
Genau dort werden die Log-Messages vor und nach den 30 Sekunden produziert.
Hier haben aber die Breakpoints von Intellij nicht gezogen!
Auch in `ExecutorConfigurationSupport` und `ThreadPoolExecutor` nicht!
Daher konnte ich nicht herausfinden, worauf da warum gewartet wird!
src/main/java/de/juplo/kafka/Application.java
src/main/java/de/juplo/kafka/ExampleProducer.java
src/main/resources/application.yml