Search in sources :

Example 1 with ScheduleFillDataInfoDTO

use of com.dtstack.taier.scheduler.dto.fill.ScheduleFillDataInfoDTO in project Taier by DTStack.

the class JobService method fillData.

/**
 * 生成补数据
 *
 * @param dto 补数据需要的参数
 * @return 补数据标识
 */
public Long fillData(ScheduleFillJobParticipateDTO dto) {
    // 必要的校验
    checkFillData(dto);
    // 生成schedule_fill_data_job数据
    ScheduleFillDataJob fillDataJob = buildScheduleFillDataJob(dto);
    fillDataJobService.save(fillDataJob);
    // 提交补数据任务
    ScheduleFillDataInfoDTO fillDataInfo = dto.getFillDataInfo();
    fillDataThreadPoolExecutor.submit(new FillDataRunnable(fillDataJob.getId(), dto, fillDataInfo, fillStatusUpdateFinishEvent, applicationContext));
    return fillDataJob.getId();
}
Also used : ScheduleFillDataInfoDTO(com.dtstack.taier.scheduler.dto.fill.ScheduleFillDataInfoDTO) ScheduleFillDataJob(com.dtstack.taier.dao.domain.ScheduleFillDataJob) FillDataRunnable(com.dtstack.taier.scheduler.server.action.fill.FillDataRunnable)

Example 2 with ScheduleFillDataInfoDTO

use of com.dtstack.taier.scheduler.dto.fill.ScheduleFillDataInfoDTO in project Taier by DTStack.

the class JobService method checkFillData.

/**
 * 校验补数据任务参数
 * @param scheduleFillJobParticipateDTO 补数据参数
 */
private void checkFillData(ScheduleFillJobParticipateDTO scheduleFillJobParticipateDTO) {
    String fillName = scheduleFillJobParticipateDTO.getFillName();
    String startDay = scheduleFillJobParticipateDTO.getStartDay();
    String endDay = scheduleFillJobParticipateDTO.getEndDay();
    ScheduleFillDataInfoDTO fillDataInfo = scheduleFillJobParticipateDTO.getFillDataInfo();
    DateTime startTime = new DateTime(DateUtil.getDateMilliSecondTOFormat(startDay, DateUtil.DATE_FORMAT));
    DateTime endTime = new DateTime(DateUtil.getDateMilliSecondTOFormat(endDay, DateUtil.DATE_FORMAT));
    if (fillName == null) {
        throw new RdosDefineException("(fillName 参数不能为空)", ErrorCode.INVALID_PARAMETERS);
    }
    // 补数据的名称中-作为分割名称和后缀信息的分隔符,故不允许使用
    if (fillName.contains("-")) {
        throw new RdosDefineException("(fillName 参数不能包含字符 '-')", ErrorCode.INVALID_PARAMETERS);
    }
    if (!startTime.isBefore(DateTime.now())) {
        throw new RdosDefineException("(补数据业务日期开始时间不能晚于结束时间)", ErrorCode.INVALID_PARAMETERS);
    }
    if (fillDataInfo == null) {
        throw new RdosDefineException("fillDataInfo is not null", ErrorCode.INVALID_PARAMETERS);
    }
    if (FillDataTypeEnum.PROJECT.getType().equals(fillDataInfo.getFillDataType()) && (endTime.getMillis() - startTime.getMillis()) / (1000 * 3600 * 24) > 7) {
        throw new RdosDefineException("The difference between the start and end days cannot exceed 7 days", ErrorCode.INVALID_PARAMETERS);
    }
    if (fillDataJobService.checkExistsName(fillName)) {
        throw new RdosDefineException("补数据任务名称已存在", ErrorCode.NAME_ALREADY_EXIST);
    }
}
Also used : ScheduleFillDataInfoDTO(com.dtstack.taier.scheduler.dto.fill.ScheduleFillDataInfoDTO) RdosDefineException(com.dtstack.taier.common.exception.RdosDefineException) DateTime(org.joda.time.DateTime)

Aggregations

ScheduleFillDataInfoDTO (com.dtstack.taier.scheduler.dto.fill.ScheduleFillDataInfoDTO)2 RdosDefineException (com.dtstack.taier.common.exception.RdosDefineException)1 ScheduleFillDataJob (com.dtstack.taier.dao.domain.ScheduleFillDataJob)1 FillDataRunnable (com.dtstack.taier.scheduler.server.action.fill.FillDataRunnable)1 DateTime (org.joda.time.DateTime)1