test: 补充流水标签协调器日志

This commit is contained in:
wkc
2026-03-17 14:58:35 +08:00
parent cdad9edf57
commit 4076097185
2 changed files with 66 additions and 0 deletions

View File

@@ -9,10 +9,12 @@ import org.springframework.stereotype.Component;
import jakarta.annotation.Resource;
import java.util.concurrent.ConcurrentHashMap;
import lombok.extern.slf4j.Slf4j;
/**
* 项目级流水标签重算协调器
*/
@Slf4j
@Component
public class ProjectBankTagRebuildCoordinator {
@@ -33,7 +35,11 @@ public class ProjectBankTagRebuildCoordinator {
* @param operator 操作人
*/
public void submitManual(Long projectId, String modelCode, String operator) {
log.info("【流水标签】手动重算开始排队: projectId={}, modelCode={}, operator={}",
projectId, modelCode, operator);
if (isProjectRunning(projectId)) {
log.warn("【流水标签】项目已有运行中任务,拒绝手动重算: projectId={}, modelCode={}, operator={}",
projectId, modelCode, operator);
throw new ServiceException("当前项目标签正在重算中,请稍后再试");
}
@@ -49,6 +55,8 @@ public class ProjectBankTagRebuildCoordinator {
public void submitAuto(Long projectId, TriggerType triggerType) {
CcdiBankTagTask runningTask = taskMapper.selectRunningTaskByProjectId(projectId);
if (runningTask != null || runningProjects.containsKey(projectId)) {
log.warn("【流水标签】项目正在重算,已标记完成后补跑: projectId={}, runningTaskId={}, triggerType={}",
projectId, runningTask != null ? runningTask.getId() : null, triggerType);
markNeedRerun(runningTask);
return;
}
@@ -64,12 +72,15 @@ public class ProjectBankTagRebuildCoordinator {
private void executeWithLock(Long projectId, Runnable action) {
if (runningProjects.putIfAbsent(projectId, Boolean.TRUE) != null) {
log.warn("【流水标签】项目已有运行中任务,拒绝获取项目锁: projectId={}", projectId);
throw new ServiceException("当前项目标签正在重算中,请稍后再试");
}
log.info("【流水标签】获取项目重算锁成功: projectId={}", projectId);
try {
action.run();
} finally {
runningProjects.remove(projectId);
log.info("【流水标签】释放项目重算锁: projectId={}", projectId);
}
}