|
|
|
|
@ -11,9 +11,10 @@ import org.slf4j.Logger; |
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Date; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Component |
|
|
|
|
public class GatherJob implements Job { |
|
|
|
|
|
|
|
|
|
@ -58,25 +59,46 @@ public class GatherJob implements Job { |
|
|
|
|
rule.setStatus(1); |
|
|
|
|
scheduleRulesMapper.updateScheduleRules(rule); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (rule.getRuleType() == 0) {
|
|
|
|
|
// Date start = rule.getStartTime();
|
|
|
|
|
// Date end = rule.getEndTime();
|
|
|
|
|
// if (start != null && end != null) {
|
|
|
|
|
// // 当前时间不在范围内
|
|
|
|
|
// if ( now.after(end)) {
|
|
|
|
|
// rule.setStatus(2); // 超出范围标记完成
|
|
|
|
|
// scheduleRulesMapper.updateScheduleRules(rule);
|
|
|
|
|
// iAlertSenderService.sendInternalMessage("采集整体任务成功","按照频率进行采集的任务执行完成","2");
|
|
|
|
|
//
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 执行任务
|
|
|
|
|
iScheduleRulesService.executeImmediately(); |
|
|
|
|
|
|
|
|
|
// 3.判断是否执行完成 按频率判断时间范围
|
|
|
|
|
if (rule.getRuleType() == 0) { |
|
|
|
|
Date start = rule.getStartTime(); |
|
|
|
|
Date end = rule.getEndTime(); |
|
|
|
|
if (start != null && end != null) { |
|
|
|
|
// 当前时间不在范围内
|
|
|
|
|
if ( now.after(end)) { |
|
|
|
|
rule.setStatus(2); // 超出范围标记完成
|
|
|
|
|
if (rule.getRuleType() == 0 && rule.getEndTime() != null && rule.getFrequency() != null) { |
|
|
|
|
// 计算下一次执行时间
|
|
|
|
|
Calendar nextRun = Calendar.getInstance(); |
|
|
|
|
nextRun.setTime(now); |
|
|
|
|
nextRun.add(Calendar.MINUTE, rule.getFrequency().intValue()); |
|
|
|
|
|
|
|
|
|
if (nextRun.getTime().after(rule.getEndTime())) { |
|
|
|
|
// 已经超出范围,标记完成 + 取消任务 + 发送通知
|
|
|
|
|
rule.setStatus(2); |
|
|
|
|
scheduleRulesMapper.updateScheduleRules(rule); |
|
|
|
|
iAlertSenderService.sendInternalMessage("采集整体任务成功","按照频率进行采集的任务执行完成","2"); |
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
Scheduler scheduler = context.getScheduler(); |
|
|
|
|
JobKey jobKey = context.getJobDetail().getKey(); |
|
|
|
|
scheduler.deleteJob(jobKey); |
|
|
|
|
|
|
|
|
|
iAlertSenderService.sendInternalMessage("采集整体任务成功", |
|
|
|
|
"按照频率进行采集的任务执行完成","2"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 执行任务
|
|
|
|
|
iScheduleRulesService.executeImmediately(); |
|
|
|
|
|
|
|
|
|
// 执行成功
|
|
|
|
|
if (rule.getRuleType() == 1 ) { |
|
|
|
|
rule.setStatus(2); |
|
|
|
|
|