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();
}
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);
}
}
Aggregations