diff --git a/src/main/java/net/geedge/asw/common/config/ThreadPoolConfig.java b/src/main/java/net/geedge/asw/common/config/ThreadPoolConfig.java new file mode 100644 index 0000000..11a3bf7 --- /dev/null +++ b/src/main/java/net/geedge/asw/common/config/ThreadPoolConfig.java @@ -0,0 +1,17 @@ +package net.geedge.asw.common.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +@Configuration +public class ThreadPoolConfig { + + @Bean + public ExecutorService virtualThreadExecutor() { + return Executors.newVirtualThreadPerTaskExecutor(); + } + +} \ No newline at end of file diff --git a/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java b/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java index bd9b88c..aadbd2e 100644 --- a/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java +++ b/src/main/java/net/geedge/asw/module/app/service/impl/GitServiceImpl.java @@ -26,6 +26,7 @@ import org.eclipse.jgit.treewalk.CanonicalTreeParser; import org.eclipse.jgit.treewalk.TreeWalk; import org.eclipse.jgit.treewalk.filter.PathFilter; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -33,6 +34,7 @@ import java.io.File; import java.io.IOException; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -61,6 +63,10 @@ public class GitServiceImpl implements IGitService { @Autowired private IWorkspaceService workspaceService; + @Autowired + @Qualifier("virtualThreadExecutor") + private ExecutorService virtualThreadExecutor; + /** * is binary file * @@ -289,7 +295,7 @@ public class GitServiceImpl implements IGitService { log.warn(e); } return T.MapUtil.newHashMap(); - }) + }, this.virtualThreadExecutor) ); resultList.add(m);