use of com.dtstack.taier.scheduler.server.builder.dependency.DependencyHandler in project Taier by DTStack.
the class AbstractJobBuilder method buildJobBuilderBean.
/**
* 构建JobBuilderBean
*
* @param scheduleTaskShade 需要被构建的任务
* @param name 实例名称
* @param fillId 补数据id
* @param jobSortWorker 排序器
* @param corn 周期实例
* @param scheduleConf 调度配置
* @param currentData 当前时间
* @return
*/
private ScheduleJobDetails buildJobBuilderBean(ScheduleTaskShade scheduleTaskShade, String name, Long fillId, JobSortWorker jobSortWorker, ScheduleCorn corn, ScheduleConf scheduleConf, Date currentData, String flowJobId) {
String triggerTime = DateUtil.getDate(currentData, DateUtil.STANDARD_DATETIME_FORMAT);
String cycTime = DateUtil.getTimeStrWithoutSymbol(triggerTime);
String jobKey = JobKeyUtils.generateJobKey(getKeyPreStr(name), scheduleTaskShade.getTaskId(), cycTime);
// 实例
ScheduleJob scheduleJob = new ScheduleJob();
scheduleJob.setTenantId(scheduleTaskShade.getTenantId());
scheduleJob.setJobId(actionService.generateUniqueSign());
scheduleJob.setJobKey(jobKey);
scheduleJob.setJobName(getName(scheduleTaskShade, name, cycTime));
scheduleJob.setTaskId(scheduleTaskShade.getTaskId());
scheduleJob.setCreateUserId(scheduleTaskShade.getCreateUserId());
scheduleJob.setIsDeleted(Deleted.NORMAL.getStatus());
scheduleJob.setType(getType());
scheduleJob.setIsRestart(Restarted.NORMAL.getStatus());
scheduleJob.setCycTime(cycTime);
scheduleJob.setDependencyType(scheduleConf.getSelfReliance());
scheduleJob.setFlowJobId(flowJobId);
scheduleJob.setPeriodType(scheduleConf.getPeriodType());
scheduleJob.setStatus(TaskStatus.UNSUBMIT.getStatus());
scheduleJob.setTaskType(scheduleTaskShade.getTaskType());
scheduleJob.setFillId(fillId);
scheduleJob.setMaxRetryNum(scheduleConf.getMaxRetryNum());
scheduleJob.setVersionId(scheduleTaskShade.getVersionId());
scheduleJob.setComputeType(scheduleTaskShade.getComputeType());
scheduleJob.setNextCycTime(DateUtil.getDate(corn.next(currentData), DateUtil.STANDARD_DATETIME_FORMAT));
scheduleJob.setJobExecuteOrder(JobExecuteOrderUtil.buildJobExecuteOrder(cycTime, jobSortWorker.getSort()));
// 获得依赖
List<ScheduleJobJob> jobJobList = Lists.newArrayList();
DependencyHandler dependencyHandler = dependencyManager.getDependencyHandler(getKeyPreStr(name), scheduleTaskShade, corn);
while (dependencyHandler != null) {
jobJobList.addAll(dependencyHandler.generationJobJobForTask(corn, currentData, jobKey));
dependencyHandler = dependencyHandler.next();
}
ScheduleJobDetails jobBuilderBean = new ScheduleJobDetails();
jobBuilderBean.setJobJobList(jobJobList);
jobBuilderBean.setScheduleJob(scheduleJob);
return jobBuilderBean;
}
Aggregations