增加构建通知

This commit is contained in:
dengqichen 2025-11-27 18:53:44 +08:00
parent e09d8d4be2
commit d572e5115b

View File

@ -98,6 +98,9 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl<JenkinsBuild, Jenki
@Resource
private INotificationSendService notificationSendService;
@Resource
private jakarta.persistence.EntityManager entityManager;
@Resource(name = "jenkinsTaskExecutor")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@ -109,6 +112,7 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl<JenkinsBuild, Jenki
doSyncBuilds(externalSystemId, null, null);
// 同步完成后检查并发送构建通知
// 注意checkBuildNotifications 内部会处理异常不会影响同步事务
checkBuildNotifications(externalSystemId);
}
@ -649,10 +653,14 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl<JenkinsBuild, Jenki
}
} catch (org.springframework.orm.ObjectOptimisticLockingFailureException e) {
// 乐观锁冲突说明记录已被其他线程更新忽略即可
// 乐观锁冲突说明记录已被其他线程更新
// 清除持久化上下文避免脏数据影响后续操作
entityManager.clear();
log.warn("构建通知记录乐观锁冲突,跳过处理: teamId={}, envId={}, buildId={}",
config.getTeamId(), config.getEnvironmentId(), build.getId());
} catch (Exception e) {
// 清除持久化上下文避免脏数据影响后续操作
entityManager.clear();
log.error("处理构建通知失败: teamId={}, envId={}, buildId={}",
config.getTeamId(), config.getEnvironmentId(), build.getId(), e);
}