diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java index d2ab5801..f2d52adf 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/MemoryLogManager.java @@ -10,6 +10,7 @@ import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; @@ -121,6 +122,11 @@ public class MemoryLogManager implements LoggerManager { pipTaskLog.setContent(pipTaskLog.getContent()+logCache.toString()); updateList.add(pipTaskLog); taskIdDbMap.remove(taskId); + taskIdMemoryLogMap.remove(taskId); + List sseEmitters = taskIdSSEMap.get(taskId); + if (!CollectionUtils.isEmpty(sseEmitters)) { + sseEmitters.forEach(ResponseBodyEmitter::complete); + } // logDao.updateById(pipTaskLog); } else { // 不存在就新增 @@ -130,6 +136,12 @@ public class MemoryLogManager implements LoggerManager { // logDao.insert(pipTaskLog); // taskIdDbMap.put(taskId,pipTaskLog.getId()); insertList.add(pipTaskLog); + taskIdDbMap.remove(taskId); + taskIdMemoryLogMap.remove(taskId); + List sseEmitters = taskIdSSEMap.get(taskId); + if (!CollectionUtils.isEmpty(sseEmitters)) { + sseEmitters.forEach(ResponseBodyEmitter::complete); + } } } }