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

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