use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskService method frozenTask.
/**
* 修改任务运行状态
*
* @param taskIdList 任务id
* @param scheduleStatus 调度状态
* @return 是否更新成功
*/
public Boolean frozenTask(List<Long> taskIdList, Integer scheduleStatus) {
if (CollectionUtils.isEmpty(taskIdList)) {
LOGGER.error("taskIdList is null");
return Boolean.FALSE;
}
if (EScheduleStatus.getStatus(scheduleStatus) == null) {
LOGGER.error("scheduleStatus is null");
return Boolean.FALSE;
}
ScheduleTaskShade scheduleTask = new ScheduleTaskShade();
scheduleTask.setScheduleStatus(scheduleStatus);
return this.lambdaUpdate().in(ScheduleTaskShade::getTaskId, taskIdList).eq(ScheduleTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).update(scheduleTask);
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskTaskService method displayLevelNode.
/**
* 展示固定层级的节点
*
* @param taskShade 头任务
* @param level 层级
* @param directType 方向
* @return
*/
private List<TaskNodeVO> displayLevelNode(ScheduleTaskShade taskShade, Integer level, Integer directType) {
List<TaskNodeVO> taskNodeVOS = Lists.newArrayList();
if (level <= 0) {
// 已经到达需要查询的节点层数,不需要继续向下查询,直接返回即可
return taskNodeVOS;
}
List<ScheduleTaskTaskShade> taskTaskShades;
List<Long> taskIdList;
// 查询节点
if (DisplayDirect.CHILD.getType().equals(directType)) {
// 向下
taskTaskShades = this.lambdaQuery().eq(ScheduleTaskTaskShade::getParentTaskId, taskShade.getTaskId()).eq(ScheduleTaskTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).list();
taskIdList = taskTaskShades.stream().map(ScheduleTaskTaskShade::getTaskId).collect(Collectors.toList());
} else {
// 向上
taskTaskShades = this.lambdaQuery().eq(ScheduleTaskTaskShade::getTaskId, taskShade.getTaskId()).eq(ScheduleTaskTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).list();
taskIdList = taskTaskShades.stream().map(ScheduleTaskTaskShade::getParentTaskId).collect(Collectors.toList());
}
if (CollectionUtils.isEmpty(taskTaskShades)) {
return taskNodeVOS;
}
// 查询任务
List<ScheduleTaskShade> taskShadeList = taskService.lambdaQuery().in(ScheduleTaskShade::getTaskId, taskIdList).eq(ScheduleTaskShade::getFlowId, 0).eq(ScheduleTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).list();
Map<Long, ScheduleTaskShade> taskShadeMap = taskShadeList.stream().collect(Collectors.toMap(ScheduleTaskShade::getTaskId, g -> (g)));
for (ScheduleTaskTaskShade taskTaskShade : taskTaskShades) {
ScheduleTaskShade taskShadeSon;
if (DisplayDirect.CHILD.getType().equals(directType)) {
taskShadeSon = taskShadeMap.get(taskTaskShade.getTaskId());
} else {
taskShadeSon = taskShadeMap.get(taskTaskShade.getParentTaskId());
}
TaskNodeVO vo = new TaskNodeVO();
if (taskShadeSon != null) {
setNode(taskShadeSon, vo);
if (DisplayDirect.CHILD.getType().equals(directType)) {
vo.setChildNode(displayLevelNode(taskShadeSon, level - 1, directType));
} else {
vo.setParentNode(displayLevelNode(taskShadeSon, level - 1, directType));
}
}
taskNodeVOS.add(vo);
}
return taskNodeVOS;
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskTaskService method findChildNode.
/**
* 查询孩子节点
*
* @param root 顶节点
* @param taskTaskMap 节点关系集合
* @return 节点列表
*/
private List<TaskNodeVO> findChildNode(TaskNodeVO root, Map<Long, ScheduleTaskShade> taskMaps, Map<Long, List<ScheduleTaskTaskShade>> taskTaskMap) {
List<ScheduleTaskTaskShade> scheduleTaskTaskShades = taskTaskMap.get(root.getTaskId());
List<TaskNodeVO> taskNodeVOS = Lists.newArrayList();
if (CollectionUtils.isEmpty(scheduleTaskTaskShades)) {
return taskNodeVOS;
}
for (ScheduleTaskTaskShade taskTaskShade : scheduleTaskTaskShades) {
ScheduleTaskShade taskShade = taskMaps.get(taskTaskShade.getTaskId());
TaskNodeVO vo = new TaskNodeVO();
vo.setTaskId(taskTaskShade.getTaskId());
if (taskShade != null) {
setNode(taskShade, vo);
}
vo.setChildNode(findChildNode(vo, taskMaps, taskTaskMap));
taskNodeVOS.add(vo);
}
return taskNodeVOS;
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskStatusJudgeJobExecOperator method isExec.
@Override
public JobCheckRunInfo isExec(ScheduleJobDetails scheduleJobDetails) {
ScheduleTaskShade scheduleTaskShade = scheduleJobDetails.getScheduleTaskShade();
ScheduleJob scheduleJob = scheduleJobDetails.getScheduleJob();
JobCheckRunInfo checkRunInfo = new JobCheckRunInfo();
// 任务已经删除
if (scheduleTaskShade == null || Deleted.DELETED.getStatus().equals(scheduleTaskShade.getIsDeleted())) {
checkRunInfo.setPass(Boolean.FALSE);
checkRunInfo.setStatus(JobCheckStatus.TASK_DELETE);
checkRunInfo.setLogInfo(JobCheckStatus.TASK_DELETE.getMsg());
return checkRunInfo;
}
// 任务停止: 不管什么情况任务都是冻结状态
if (EScheduleStatus.STOP.getVal().equals(scheduleTaskShade.getScheduleStatus())) {
checkRunInfo.setPass(Boolean.FALSE);
checkRunInfo.setStatus(JobCheckStatus.TASK_STATUS_STOP);
checkRunInfo.setLogInfo(String.format(JobCheckStatus.TASK_STATUS_STOP.getMsg(), scheduleTaskShade.getName(), EScheduleStatus.getStatus(scheduleTaskShade.getScheduleStatus())));
return checkRunInfo;
}
// 任务冻结:冻结任务只对正常的周期实例有效,补数据还是可以正常运行
if (EScheduleStatus.FREEZE.getVal().equals(scheduleTaskShade.getScheduleStatus()) && EScheduleType.NORMAL_SCHEDULE.getType().equals(scheduleJob.getType())) {
checkRunInfo.setPass(Boolean.FALSE);
checkRunInfo.setStatus(JobCheckStatus.TASK_STATUS_STOP);
checkRunInfo.setLogInfo(String.format(JobCheckStatus.TASK_STATUS_STOP.getMsg(), scheduleTaskShade.getName(), EScheduleStatus.getStatus(scheduleTaskShade.getScheduleStatus())));
return checkRunInfo;
}
checkRunInfo.setPass(Boolean.TRUE);
return checkRunInfo;
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class SyncOperatorPipeline method pipeline.
@Override
public void pipeline(Map<String, Object> actionParam, Map<String, Object> pipelineParam) throws Exception {
ScheduleTaskShade taskShade = (ScheduleTaskShade) pipelineParam.get(taskShadeKey);
ScheduleJob scheduleJob = (ScheduleJob) pipelineParam.get(scheduleJobKey);
List<ScheduleTaskParamShade> taskParamShades = (List) pipelineParam.get(taskParamsToReplaceKey);
String taskParams = (String) actionParam.get("taskParams");
String job = (String) actionParam.get("job");
EDeployMode deployMode = TaskParamsUtils.parseDeployTypeByTaskParams(taskParams, taskShade.getComputeType());
job = this.replaceSyncJobString(actionParam, taskShade, scheduleJob, taskParamShades, job, deployMode);
// 构造savepoint参数
String savepointArgs = null;
String taskExeArgs = null;
if (isRestore(job)) {
String savepointPath = this.getSavepointPath(taskShade.getTenantId(), deployMode, taskShade.getComponentVersion());
savepointArgs = buildSyncTaskExecArgs(savepointPath, taskParams);
taskParams += String.format(" \n %s=%s", KEY_OPEN_CHECKPOINT, Boolean.TRUE);
}
job = URLEncoder.encode(job.replace(CommonConstant.JOB_ID, scheduleJob.getJobId()), Charsets.UTF_8.name());
taskExeArgs = String.format(JOB_ARGS_TEMPLATE, scheduleJob.getJobName(), job);
if (savepointArgs != null) {
taskExeArgs += " " + savepointArgs;
}
actionParam.put("exeArgs", taskExeArgs);
actionParam.put("taskParams", taskParams);
}
Aggregations