You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.5 KiB
Java
77 lines
2.5 KiB
Java
package com.ann.demo.job;
|
|
|
|
import com.ann.demo.primaryRepository.ScanningFileRepository;
|
|
import com.ann.demo.primaryEntity.ScanningFile;
|
|
import com.ann.demo.service.AnalysisService;
|
|
import com.ann.demo.utils.QuartzUtils;
|
|
import org.quartz.*;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.scheduling.Trigger;
|
|
import org.springframework.scheduling.TriggerContext;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
|
import org.springframework.scheduling.support.CronTrigger;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.Duration;
|
|
import java.time.LocalDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.concurrent.ScheduledFuture;
|
|
|
|
/**
|
|
* 取从属表未解析的数据
|
|
*
|
|
* @Author: LeiJiaXin
|
|
* @Date: 2019/8/16 10:11
|
|
*/
|
|
@DisallowConcurrentExecution
|
|
public class ScheduledJob implements Job {
|
|
|
|
static final Logger logger = LoggerFactory.getLogger(ScheduledJob.class);
|
|
|
|
@Autowired
|
|
private ScanningFileRepository scanningFileRepository;
|
|
|
|
@Autowired
|
|
private AnalysisService analysisService;
|
|
|
|
@Autowired
|
|
private Scheduler scheduler;
|
|
|
|
@Value("${start}")
|
|
private int start;
|
|
|
|
@Value("${over}")
|
|
private int over;
|
|
|
|
@Override
|
|
public void execute(JobExecutionContext context) {
|
|
QuartzUtils.pauseScheduleJob(scheduler, "group1", "job1");
|
|
List<ScanningFile> scanningFiles =new ArrayList<ScanningFile>();
|
|
LocalDateTime beginTime = LocalDateTime.now();
|
|
try {
|
|
if(start==0){
|
|
scanningFiles = scanningFileRepository.findScanningFiles(over);
|
|
}else{
|
|
scanningFiles = scanningFileRepository.findScanningFilesMore(over-start,start);
|
|
}
|
|
analysisService.handleScanningFile(scanningFiles);
|
|
} catch (Exception e) {
|
|
// 如果报错-- 捕捉异常 继续执行
|
|
logger.error("执行定时任务出错:{}" ,e.getMessage());
|
|
}
|
|
QuartzUtils.resumeScheduleJob(scheduler, "group1", "job1");
|
|
LocalDateTime endTime = LocalDateTime.now();
|
|
logger.error("总耗时:"+ Duration.between(beginTime,endTime).toMillis()/1000);
|
|
logger.error("结束时间:{}" ,LocalDateTime.now());
|
|
}
|
|
|
|
}
|
|
|