流水线引擎后置处理器接口类
This commit is contained in:
parent
6a23613f25
commit
8c3535b27c
@ -1,5 +1,9 @@
|
||||
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;
|
||||
@Resource
|
||||
private PipelineService pipelineService;
|
||||
|
||||
@Override
|
||||
public Boolean stopPipeline(String pipelineId) {
|
||||
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