diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/kafka/KafkaConsumerInitializer.java b/backend/src/main/java/ru/micord/ervu/account_applications/kafka/KafkaConsumerInitializer.java new file mode 100644 index 00000000..453cbe1d --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/kafka/KafkaConsumerInitializer.java @@ -0,0 +1,27 @@ +package ru.micord.ervu.account_applications.kafka; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.DependsOn; +import org.springframework.kafka.config.KafkaListenerEndpointRegistry; +import org.springframework.kafka.listener.MessageListenerContainer; +import org.springframework.stereotype.Component; + +/** + * @author Eduard Tihomirov + */ +@Component +@DependsOn("ervuDirectoriesListener") +public class KafkaConsumerInitializer { + @Value("${kafka.domain.group.id}") + private String domainGroupId; + + @Value("${kafka.role.group.id}") + private String roleGroupId; + + public KafkaConsumerInitializer(KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry) { + MessageListenerContainer listenerContainerDomain = kafkaListenerEndpointRegistry.getListenerContainer(domainGroupId); + MessageListenerContainer listenerContainerRole = kafkaListenerEndpointRegistry.getListenerContainer(roleGroupId); + listenerContainerDomain.start(); + listenerContainerRole.start(); + } +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateService.java index d4511a42..84dd9215 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/ErvuDirectoriesUpdateService.java @@ -4,36 +4,24 @@ import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.kafka.config.KafkaListenerEndpointRegistry; -import org.springframework.kafka.listener.MessageListenerContainer; +import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Service; /** * @author Eduard Tihomirov */ @Service +@DependsOn("kafkaConsumerInitializer") public class ErvuDirectoriesUpdateService { @Autowired private ErvuDirectoriesService ervuDirectoriesService; - @Autowired - private KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry; @Value("${load.directories:true}") private Boolean loadDirectories; - @Value("${kafka.domain.group.id}") - private String domainGroupId; - - @Value("${kafka.role.group.id}") - private String roleGroupId; - @PostConstruct public void init() { - MessageListenerContainer listenerContainerDomain = kafkaListenerEndpointRegistry.getListenerContainer(domainGroupId); - MessageListenerContainer listenerContainerRole = kafkaListenerEndpointRegistry.getListenerContainer(roleGroupId); - listenerContainerDomain.start(); - listenerContainerRole.start(); if (loadDirectories) { new Thread(this::run).start(); }