这是一个定时任务:
JobDetail job2 = newJob(AutoCompleteSearch.class).withIdentity("job2", "group2").build();
Trigger trigger2 = newTrigger().withIdentity("trigger2", "group2").startNow()
.withSchedule(SimpleScheduleBuilder.repeatMinutelyForever(10)).build();
这是进来以后的一个类:
public class AutoCompleteSearch implements Job {
private static boolean isWorking = false;
Logger LOG = LoggerFactory.getLogger(AutoCompleteSearch.class);
WebSearchContentService service;
public AutoCompleteSearch() {
service = (WebSearchContentService) Spring.getBean("webSearchContentService");
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
if (!isWorking) {
isWorking = true;
LOG.info("定时检查下载状态任务正在执行中......isWorking:{},service:{}", isWorking, service);
if (service != null) {
service.completeSearch();
} else {
LOG.error("检测到service 为空,重新注入service");
service = (WebSearchContentService) Spring.getBean("webSearchContentService");
if (service != null) {
service.completeSearch();
} else {
LOG.error("service重新注入之后还是为空......{}", service);
}
}
isWorking = false;
LOG.info("定时检查下载状态任务已完成......isWorking:{}", isWorking);
}
}
}
然后这是再进来以后的方法:
@Component
public class WebSearchContentService {
Logger LOG = LoggerFactory.getLogger(WebSearchContentService.class);
public void completeSearch() {
LOG.debug("准备去获取未完成的条件......");
}
}
打印的日志:
定时检查下载状态任务正在执行中......isWorking:true,service:service.WebSearchContentService@5cd070ca
准备去获取未完成的条件......
定时检查下载状态任务已完>成......isWorking:false
定时检查下载状态任务正在执行中......isWorking:true,service:service.WebSearchContentService@5cd070ca
然后后面居然没!有!了!!!