流水线引擎后置处理器接口类

This commit is contained in:
even 2025-07-07 16:56:11 +08:00
parent 6a23613f25
commit 8c3535b27c
4 changed files with 62 additions and 1 deletions

View File

@ -1,5 +1,9 @@
package cd.casic.ci.process.engine.manager; package cd.casic.ci.process.engine.manager;
public interface PostHandlerManager { import cd.casic.ci.process.engine.postHandler.PipExecutePostHandler;
import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance;
public interface PostHandlerManager {
public void registerPostHandler(PipExecutePostHandler handler);
public void executePostHandler(PipPipelineHisInstance hisInstance);
} }

View File

@ -51,6 +51,7 @@ public class DefaultRunContextManager implements RunContextManager {
private PipPipelineHisInstanceDao hisInstanceDao; private PipPipelineHisInstanceDao hisInstanceDao;
@Resource @Resource
private PipelineService pipelineService; private PipelineService pipelineService;
@Override @Override
public Boolean stopPipeline(String pipelineId) { public Boolean stopPipeline(String pipelineId) {
return null; return null;

View File

@ -0,0 +1,39 @@
package cd.casic.ci.process.engine.manager.impl;
import cd.casic.ci.process.engine.manager.PostHandlerManager;
import cd.casic.ci.process.engine.postHandler.PipExecutePostHandler;
import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance;
import cd.casic.framework.commons.exception.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
@Component
public class MemoryPostHandlerManager implements PostHandlerManager {
private ConcurrentHashMap<String, List<PipExecutePostHandler>> handlerMap = new ConcurrentHashMap<>();
@Override
public void registerPostHandler(PipExecutePostHandler handler) {
if (handler==null|| StringUtils.isNotEmpty(handler.getPipelineId())) {
throw new ServiceException(GlobalErrorCodeConstants.PIPELINE_ERROR.getCode(),"注册后置处理器失败");
}
List<PipExecutePostHandler> orDefault = handlerMap.getOrDefault(handler.getPipelineId(), new CopyOnWriteArrayList<>());
orDefault.add(handler);
}
@Override
public void executePostHandler(PipPipelineHisInstance hisInstance) {
String pipelineId = hisInstance.getPipelineId();
List<PipExecutePostHandler> pipExecutePostHandlers = handlerMap.get(pipelineId);
if (CollectionUtils.isEmpty(pipExecutePostHandlers)) {
return;
}
for (PipExecutePostHandler postHandler : pipExecutePostHandlers) {
postHandler.executeAfterDone(hisInstance);
}
}
}

View File

@ -0,0 +1,17 @@
package cd.casic.ci.process.engine.postHandler;
import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public abstract class PipExecutePostHandler {
private String taskId;
private String pipelineId;
/**
* 流水线执行结束需要执行的操作
* */
public abstract void executeAfterDone(PipPipelineHisInstance pipPipelineHisInstance);
}