fix: Errors during shard-publishing should not kill the instance
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / implementation / kafka / KafkaServicesApplicationRunner.java
1 package de.juplo.kafka.chat.backend.implementation.kafka;
2
3 import jakarta.annotation.PreDestroy;
4 import lombok.RequiredArgsConstructor;
5 import org.springframework.boot.ApplicationArguments;
6 import org.springframework.boot.ApplicationRunner;
7 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
8 import org.springframework.stereotype.Component;
9
10
11 @ConditionalOnProperty(
12     prefix = "chat.backend",
13     name = "services",
14     havingValue = "kafka")
15 @Component
16 @RequiredArgsConstructor
17 public class KafkaServicesApplicationRunner implements ApplicationRunner
18 {
19   private final ConsumerTaskRunner consumerTaskRunner;
20
21
22   @Override
23   public void run(ApplicationArguments args)
24   {
25     consumerTaskRunner.executeConsumerTasks();
26   }
27
28   @PreDestroy
29   public void joinConsumerTasks() throws InterruptedException
30   {
31     consumerTaskRunner.joinConsumerTasks();
32   }
33 }