test2通过(如果正确注册context就能找到worker执行,还差分发逻辑暂时没测试)
This commit is contained in:
parent
e3fc790948
commit
4280521a3c
@ -52,12 +52,12 @@ public class ParallelDispatcher implements BaseDispatcher{
|
|||||||
for (PipStage secondStage : stageList) {
|
for (PipStage secondStage : stageList) {
|
||||||
// 二阶段下所有task是串行所以不用关心线程安全相关信息
|
// 二阶段下所有task是串行所以不用关心线程安全相关信息
|
||||||
SecondStageRunContext context = new SecondStageRunContext(secondStage,pipelineRunContext,new ConcurrentHashMap<>());
|
SecondStageRunContext context = new SecondStageRunContext(secondStage,pipelineRunContext,new ConcurrentHashMap<>());
|
||||||
|
|
||||||
runContextManager.contextRegister(context);
|
runContextManager.contextRegister(context);
|
||||||
SerialDispatcher serialDispatcher = new SerialDispatcher(context,latch,runContextManager,redisMQTemplate);
|
SerialDispatcher serialDispatcher = new SerialDispatcher(context,latch,runContextManager,redisMQTemplate);
|
||||||
// 给线程池进行执行
|
// 给线程池进行执行
|
||||||
taskExecutor.execute(serialDispatcher);
|
taskExecutor.execute(serialDispatcher);
|
||||||
}
|
}
|
||||||
|
// 等待当前阶段执行
|
||||||
latch.await();
|
latch.await();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import cd.casic.ci.process.process.dataObject.stage.PipStage;
|
|||||||
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
||||||
import cd.casic.framework.mq.redis.core.RedisMQTemplate;
|
import cd.casic.framework.mq.redis.core.RedisMQTemplate;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
@ -39,12 +40,13 @@ public class SerialDispatcher implements BaseDispatcher {
|
|||||||
@Override
|
@Override
|
||||||
public void dispatch() {
|
public void dispatch() {
|
||||||
for (PipTask pipTask : taskList) {
|
for (PipTask pipTask : taskList) {
|
||||||
// 注册taskContext,且发送消息至消息队列给work执行
|
// 注册taskContext,且发送消息至消息队列给work执行, 如果需要则传入参数
|
||||||
TaskRunContext taskRunContext = new TaskRunContext(pipTask,stageRunContext);
|
TaskRunContext taskRunContext = new TaskRunContext(pipTask,stageRunContext,new HashMap<>());
|
||||||
contextManager.contextRegister(taskRunContext);
|
contextManager.contextRegister(taskRunContext);
|
||||||
taskRunContext.changeContextState(ContextStateEnum.READY);
|
taskRunContext.changeContextState(ContextStateEnum.READY);
|
||||||
TaskRunMessage taskRunMessage = new TaskRunMessage(pipTask);
|
TaskRunMessage taskRunMessage = new TaskRunMessage(pipTask);
|
||||||
redisMQTemplate.send(taskRunMessage);
|
redisMQTemplate.send(taskRunMessage);
|
||||||
|
// TODO 监听当前taskContext状态
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,8 +11,8 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class TaskRunContext extends BaseRunContext{
|
public class TaskRunContext extends BaseRunContext{
|
||||||
public TaskRunContext(PipTask contextDef, SecondStageRunContext parentContext) {
|
public TaskRunContext(PipTask contextDef, SecondStageRunContext parentContext,Map<String,Object> localVariable) {
|
||||||
super(contextDef, parentContext, LocalDateTime.now(), parentContext.getResourceId(), parentContext.getTargetId(), parentContext.getTargetType(), parentContext.getGlobalVariables(), new HashMap<>(), new HashMap<>());
|
super(contextDef, parentContext, LocalDateTime.now(), parentContext.getResourceId(), parentContext.getTargetId(), parentContext.getTargetType(), parentContext.getGlobalVariables(),localVariable, new HashMap<>());
|
||||||
}
|
}
|
||||||
private TaskRunContext(PipBaseElement contextDef, BaseRunContext parentContext, LocalDateTime startTime, String resourceId, String targetId, String targetType, Map<String, Object> globalVariables, Map<String, Object> localVariables, Map<String, BaseRunContext> childContext) {
|
private TaskRunContext(PipBaseElement contextDef, BaseRunContext parentContext, LocalDateTime startTime, String resourceId, String targetId, String targetType, Map<String, Object> globalVariables, Map<String, Object> localVariables, Map<String, BaseRunContext> childContext) {
|
||||||
super(contextDef, parentContext, startTime, resourceId, targetId, targetType, globalVariables, localVariables, childContext);
|
super(contextDef, parentContext, startTime, resourceId, targetId, targetType, globalVariables, localVariables, childContext);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user