流水线引擎后置处理器接口类
This commit is contained in:
parent
6a23613f25
commit
8c3535b27c
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user