From ae796c9e9e4ec5c86853aa9b100d0cfe4deeda3c Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Fri, 4 Nov 2022 10:13:36 +0100 Subject: [PATCH] WIP:TaskExecutor --- src/main/java/de/juplo/kafka/Application.java | 2 +- .../de/juplo/kafka/ApplicationConfiguration.java | 3 +++ src/main/java/de/juplo/kafka/SimpleConsumer.java | 12 +++++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/juplo/kafka/Application.java b/src/main/java/de/juplo/kafka/Application.java index d4c0885..3157ef6 100644 --- a/src/main/java/de/juplo/kafka/Application.java +++ b/src/main/java/de/juplo/kafka/Application.java @@ -27,7 +27,7 @@ public class Application implements ApplicationRunner public void run(ApplicationArguments args) throws Exception { log.info("Starting SimpleConsumer"); - simpleConsumer.run(); + simpleConsumer.start(); } @PreDestroy diff --git a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java index de77c60..648bb9d 100644 --- a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java +++ b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java @@ -6,6 +6,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.task.TaskExecutor; import org.springframework.kafka.core.ConsumerFactory; @@ -15,12 +16,14 @@ public class ApplicationConfiguration { @Bean public SimpleConsumer endlessConsumer( + TaskExecutor taskExecutor, Consumer kafkaConsumer, KafkaProperties kafkaProperties, ApplicationProperties applicationProperties) { return new SimpleConsumer( + taskExecutor, kafkaProperties.getClientId(), applicationProperties.getTopic(), kafkaConsumer); diff --git a/src/main/java/de/juplo/kafka/SimpleConsumer.java b/src/main/java/de/juplo/kafka/SimpleConsumer.java index dac22a2..64d5176 100644 --- a/src/main/java/de/juplo/kafka/SimpleConsumer.java +++ b/src/main/java/de/juplo/kafka/SimpleConsumer.java @@ -6,7 +6,7 @@ import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.common.errors.WakeupException; -import org.springframework.scheduling.annotation.Async; +import org.springframework.core.task.TaskExecutor; import java.time.Duration; import java.util.Arrays; @@ -14,8 +14,9 @@ import java.util.Arrays; @Slf4j @RequiredArgsConstructor -public class SimpleConsumer +public class SimpleConsumer implements Runnable { + private final TaskExecutor taskExecutor; private final String id; private final String topic; private final Consumer consumer; @@ -23,7 +24,12 @@ public class SimpleConsumer private long consumed = 0; - @Async + public void start() + { + taskExecutor.execute(this); + } + + @Override public void run() { try -- 2.20.1