diff --git a/src/main/java/com/example/mmad/testapp/TestAAppApplication.java b/src/main/java/com/example/mmad/testapp/TestAAppApplication.java index d656229..9a225d1 100755 --- a/src/main/java/com/example/mmad/testapp/TestAAppApplication.java +++ b/src/main/java/com/example/mmad/testapp/TestAAppApplication.java @@ -3,9 +3,11 @@ package com.example.mmad.testapp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.scheduling.annotation.EnableAsync; @SpringBootApplication @EnableDiscoveryClient +@EnableAsync public class TestAAppApplication { public static void main(String[] args) { diff --git a/src/main/java/com/example/mmad/testapp/config/AsyncConfig.java b/src/main/java/com/example/mmad/testapp/config/AsyncConfig.java new file mode 100644 index 0000000..111b4aa --- /dev/null +++ b/src/main/java/com/example/mmad/testapp/config/AsyncConfig.java @@ -0,0 +1,23 @@ +package com.example.mmad.testapp.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; + +@Configuration() +@EnableAsync +public class AsyncConfig { + @Bean(name = "taskExecutor") + public Executor taskExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(5); + executor.setMaxPoolSize(10); + executor.setQueueCapacity(500); + executor.setThreadNamePrefix("taskExecutor-"); + executor.initialize(); + return executor; + } +} diff --git a/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java b/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java index 9101ca0..a01f7bb 100644 --- a/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java +++ b/src/main/java/com/example/mmad/testapp/query/UserQueryHandler.java @@ -2,10 +2,12 @@ package com.example.mmad.testapp.query; import com.example.mmad.testapp.event.UserCreatedEvent; import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; @Component public class UserQueryHandler { + @Async("taskExecutor") @EventListener public void handelUserCreated(UserCreatedEvent event) { System.out.println("Received user created event" + event.getUserId());