fix(sj_1.1.0-beta2): 优化工作流代码
This commit is contained in:
parent
19590c5422
commit
27adf03420
@ -8,12 +8,12 @@ import com.aizuda.snailjob.common.core.enums.JobTaskStatusEnum;
|
|||||||
import com.aizuda.snailjob.common.core.enums.JobTaskTypeEnum;
|
import com.aizuda.snailjob.common.core.enums.JobTaskTypeEnum;
|
||||||
import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum;
|
import com.aizuda.snailjob.common.core.enums.MapReduceStageEnum;
|
||||||
import com.aizuda.snailjob.common.core.enums.StatusEnum;
|
import com.aizuda.snailjob.common.core.enums.StatusEnum;
|
||||||
|
import com.aizuda.snailjob.common.core.exception.SnailJobMapReduceException;
|
||||||
import com.aizuda.snailjob.common.core.model.JobArgsHolder;
|
import com.aizuda.snailjob.common.core.model.JobArgsHolder;
|
||||||
import com.aizuda.snailjob.common.core.util.JsonUtil;
|
import com.aizuda.snailjob.common.core.util.JsonUtil;
|
||||||
import com.aizuda.snailjob.common.core.util.StreamUtils;
|
import com.aizuda.snailjob.common.core.util.StreamUtils;
|
||||||
import com.aizuda.snailjob.common.log.SnailJobLog;
|
import com.aizuda.snailjob.common.log.SnailJobLog;
|
||||||
import com.aizuda.snailjob.server.common.allocate.client.ClientLoadBalanceManager;
|
import com.aizuda.snailjob.server.common.allocate.client.ClientLoadBalanceManager;
|
||||||
import com.aizuda.snailjob.server.common.cache.CacheRegisterTable;
|
|
||||||
import com.aizuda.snailjob.server.common.dto.RegisterNodeInfo;
|
import com.aizuda.snailjob.server.common.dto.RegisterNodeInfo;
|
||||||
import com.aizuda.snailjob.server.common.exception.SnailJobServerException;
|
import com.aizuda.snailjob.server.common.exception.SnailJobServerException;
|
||||||
import com.aizuda.snailjob.server.common.handler.ClientNodeAllocateHandler;
|
import com.aizuda.snailjob.server.common.handler.ClientNodeAllocateHandler;
|
||||||
@ -24,7 +24,6 @@ import com.aizuda.snailjob.server.job.task.support.JobTaskConverter;
|
|||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
|
import com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -120,7 +119,8 @@ public class MapReduceTaskGenerator extends AbstractJobTaskGenerator {
|
|||||||
int reduceParallel = 1;
|
int reduceParallel = 1;
|
||||||
String jobParams = null;
|
String jobParams = null;
|
||||||
try {
|
try {
|
||||||
MapReduceArgsStrDTO mapReduceArgsStrDTO = JsonUtil.parseObject(context.getArgsStr(), MapReduceArgsStrDTO.class);
|
MapReduceArgsStrDTO mapReduceArgsStrDTO = JsonUtil.parseObject(context.getArgsStr(),
|
||||||
|
MapReduceArgsStrDTO.class);
|
||||||
reduceParallel = Optional.ofNullable(mapReduceArgsStrDTO.getShardNum()).orElse(1);
|
reduceParallel = Optional.ofNullable(mapReduceArgsStrDTO.getShardNum()).orElse(1);
|
||||||
jobParams = mapReduceArgsStrDTO.getArgsStr();
|
jobParams = mapReduceArgsStrDTO.getArgsStr();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -128,7 +128,7 @@ public class MapReduceTaskGenerator extends AbstractJobTaskGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<JobTask> jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper<JobTask>()
|
List<JobTask> jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper<JobTask>()
|
||||||
.select(JobTask::getResultMessage)
|
.select(JobTask::getResultMessage, JobTask::getId)
|
||||||
.eq(JobTask::getTaskBatchId, context.getTaskBatchId())
|
.eq(JobTask::getTaskBatchId, context.getTaskBatchId())
|
||||||
.eq(JobTask::getMrStage, MapReduceStageEnum.MAP.getStage())
|
.eq(JobTask::getMrStage, MapReduceStageEnum.MAP.getStage())
|
||||||
.eq(JobTask::getLeaf, StatusEnum.YES.getStatus())
|
.eq(JobTask::getLeaf, StatusEnum.YES.getStatus())
|
||||||
@ -187,8 +187,9 @@ public class MapReduceTaskGenerator extends AbstractJobTaskGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 判定父节点是不是叶子节点,若是则不更新否则更新为非叶子节点
|
// 判定父节点是不是叶子节点,若是则不更新否则更新为非叶子节点
|
||||||
List<JobTask> parentJobTasks = jobTaskMapper.selectList(new PageDTO<>(1, 1),
|
JobTask parentJobTask = jobTaskMapper.selectOne(
|
||||||
new LambdaQueryWrapper<JobTask>().select(JobTask::getId)
|
new LambdaQueryWrapper<JobTask>()
|
||||||
|
.select(JobTask::getId)
|
||||||
.eq(JobTask::getId, context.getParentId())
|
.eq(JobTask::getId, context.getParentId())
|
||||||
.eq(JobTask::getLeaf, StatusEnum.YES.getStatus())
|
.eq(JobTask::getLeaf, StatusEnum.YES.getStatus())
|
||||||
);
|
);
|
||||||
@ -226,17 +227,17 @@ public class MapReduceTaskGenerator extends AbstractJobTaskGenerator {
|
|||||||
batchSaveJobTasks(jobTasks);
|
batchSaveJobTasks(jobTasks);
|
||||||
|
|
||||||
// 更新父节点的为非叶子节点
|
// 更新父节点的为非叶子节点
|
||||||
if (CollUtil.isNotEmpty(parentJobTasks)) {
|
if (Objects.nonNull(parentJobTask)) {
|
||||||
JobTask parentJobTask = new JobTask();
|
JobTask parentJobTask = new JobTask();
|
||||||
parentJobTask.setId(context.getParentId());
|
parentJobTask.setId(context.getParentId());
|
||||||
parentJobTask.setLeaf(StatusEnum.NO.getStatus());
|
parentJobTask.setLeaf(StatusEnum.NO.getStatus());
|
||||||
jobTaskMapper.updateById(parentJobTask);
|
Assert.isTrue(1 == jobTaskMapper.updateById(parentJobTask),
|
||||||
|
() -> new SnailJobMapReduceException("更新父节点失败"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
return jobTasks;
|
return jobTasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user