Search in sources :

Example 1 with DependencyHandler

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;
}
Also used : ScheduleJobDetails(com.dtstack.taier.scheduler.server.ScheduleJobDetails) ScheduleJob(com.dtstack.taier.dao.domain.ScheduleJob) DependencyHandler(com.dtstack.taier.scheduler.server.builder.dependency.DependencyHandler) ScheduleJobJob(com.dtstack.taier.dao.domain.ScheduleJobJob)

Aggregations

ScheduleJob (com.dtstack.taier.dao.domain.ScheduleJob)1 ScheduleJobJob (com.dtstack.taier.dao.domain.ScheduleJobJob)1 ScheduleJobDetails (com.dtstack.taier.scheduler.server.ScheduleJobDetails)1 DependencyHandler (com.dtstack.taier.scheduler.server.builder.dependency.DependencyHandler)1