diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryBranchApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryBranchApiController.java index 10dd9081..1ec9d4cf 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryBranchApiController.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryBranchApiController.java @@ -28,25 +28,24 @@ public class RepositoryBranchApiController extends BaseController sync( + public Response sync( @Parameter(description = "外部系统ID", required = true) @RequestParam Long externalSystemId, @Parameter(description = "仓库组ID(可选)", required = false) @RequestParam(required = false) Long repoGroupId, @Parameter(description = "仓库项目ID(可选,传此参数时repoGroupId必传)", required = false) @RequestParam(required = false) Long repoProjectId ) { - Integer count; if (repoProjectId != null) { // 同步单个项目 - count = repositoryBranchService.syncBranches(externalSystemId, repoGroupId, repoProjectId); + repositoryBranchService.syncBranches(externalSystemId, repoGroupId, repoProjectId); } else if (repoGroupId != null) { // 同步仓库组 - count = repositoryBranchService.syncBranches(externalSystemId, repoGroupId); + repositoryBranchService.syncBranches(externalSystemId, repoGroupId); } else { // 全量同步 - count = repositoryBranchService.syncBranches(externalSystemId); + repositoryBranchService.syncBranches(externalSystemId); } - return Response.success(count); + return Response.success(); } @Override diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java index b883c468..805d55ca 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java @@ -28,13 +28,13 @@ public class RepositoryGroupApiController extends BaseController sync( + public Response sync( @Parameter(description = "外部系统ID", required = true) @RequestParam Long externalSystemId ) { - Integer count = repositoryGroupService.syncGroups(externalSystemId); - return Response.success(count); + repositoryGroupService.syncGroups(externalSystemId); + return Response.success(); } @Override diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryProjectApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryProjectApiController.java index e223ce0b..6ff7037b 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryProjectApiController.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryProjectApiController.java @@ -28,21 +28,20 @@ public class RepositoryProjectApiController extends BaseController sync( + public Response sync( @Parameter(description = "外部系统ID", required = true) @RequestParam Long externalSystemId, @Parameter(description = "仓库组ID(可选)", required = false) @RequestParam(required = false) Long repoGroupId ) { - Integer count; if (repoGroupId != null) { // 同步单个仓库组 - count = repositoryProjectService.syncProjects(externalSystemId, repoGroupId); + repositoryProjectService.syncProjects(externalSystemId, repoGroupId); } else { // 全量同步 - count = repositoryProjectService.syncProjects(externalSystemId); + repositoryProjectService.syncProjects(externalSystemId); } - return Response.success(count); + return Response.success(); } @Override diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryBranchService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryBranchService.java index 02ad885d..677b0272 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryBranchService.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryBranchService.java @@ -11,31 +11,28 @@ import com.qqchen.deploy.backend.framework.service.IBaseService; public interface IRepositoryBranchService extends IBaseService { /** - * 同步指定外部系统下的所有分支(全量同步) + * 同步指定外部系统下的所有分支(异步执行,全量同步) * * @param externalSystemId 外部系统ID - * @return 同步的分支数量 */ - Integer syncBranches(Long externalSystemId); + void syncBranches(Long externalSystemId); /** - * 同步指定仓库组下所有项目的分支 + * 同步指定仓库组下所有项目的分支(异步执行) * * @param externalSystemId 外部系统ID * @param repoGroupId 仓库组ID - * @return 同步的分支数量 */ - Integer syncBranches(Long externalSystemId, Long repoGroupId); + void syncBranches(Long externalSystemId, Long repoGroupId); /** - * 同步指定项目的分支 + * 同步指定项目的分支(异步执行) * * @param externalSystemId 外部系统ID * @param repoGroupId 仓库组ID * @param repoProjectId 仓库项目ID - * @return 同步的分支数量 */ - Integer syncBranches(Long externalSystemId, Long repoGroupId, Long repoProjectId); + void syncBranches(Long externalSystemId, Long repoGroupId, Long repoProjectId); /** * 统计指定外部系统下的分支数量 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryGroupService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryGroupService.java index 88131a94..dd1d5d06 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryGroupService.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryGroupService.java @@ -13,12 +13,11 @@ import java.util.List; public interface IRepositoryGroupService extends IBaseService { /** - * 同步指定外部系统的所有仓库组(包含同步历史记录) + * 同步指定外部系统的所有仓库组(异步执行,包含同步历史记录) * * @param externalSystemId 外部系统ID - * @return 同步的仓库组数量 */ - Integer syncGroups(Long externalSystemId); + void syncGroups(Long externalSystemId); /** * 统计外部系统的仓库组数量 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryProjectService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryProjectService.java index 80d28f90..e3b7a9f1 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryProjectService.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IRepositoryProjectService.java @@ -13,21 +13,19 @@ import java.util.List; public interface IRepositoryProjectService extends IBaseService { /** - * 同步指定外部系统下的所有项目(全量同步) + * 同步指定外部系统下的所有项目(异步执行,全量同步) * * @param externalSystemId 外部系统ID - * @return 同步的项目数量 */ - Integer syncProjects(Long externalSystemId); + void syncProjects(Long externalSystemId); /** - * 同步指定仓库组下的所有项目 + * 同步指定仓库组下的所有项目(异步执行) * * @param externalSystemId 外部系统ID * @param repoGroupId 仓库组ID - * @return 同步的项目数量 */ - Integer syncProjects(Long externalSystemId, Long repoGroupId); + void syncProjects(Long externalSystemId, Long repoGroupId); /** * 统计指定外部系统下的项目数量 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java index c32b7153..20e0a42e 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java @@ -21,6 +21,7 @@ import com.qqchen.deploy.backend.deploy.service.IRepositorySyncHistoryService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.orm.ObjectOptimisticLockingFailureException; +import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -189,21 +190,24 @@ public class RepositoryBranchServiceImpl extends BaseServiceImpl