package com.doumee.jobs.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.doumee.dao.timer.entity.JobState;
|
import com.doumee.dao.timer.entity.QuartzJob;
|
import com.doumee.dao.timer.mapper.QuartzJobMapper;
|
import com.doumee.dao.timer.scheduler.QuartzManage;
|
import org.quartz.CronTrigger;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.PostConstruct;
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Objects;
|
@Service
|
public class TimerBizSevice {
|
@Resource
|
private QuartzJobMapper quartzJobMapper ;
|
@Resource
|
private QuartzManage quartzManage;
|
/**
|
* 初始化加载定时任务
|
*/
|
@PostConstruct
|
public void init () {
|
LambdaQueryWrapper<QuartzJob> queryWrapper = new LambdaQueryWrapper<>() ;
|
queryWrapper.in(QuartzJob::getState, JobState.JOB_RUN.getStatus(),JobState.JOB_STOP.getStatus());
|
List<QuartzJob> jobList = quartzJobMapper.selectList(queryWrapper);
|
jobList.forEach(quartzJob -> {
|
try {
|
CronTrigger cronTrigger = quartzManage.getCronTrigger(quartzJob.getId()) ;
|
if (Objects.isNull(cronTrigger)){
|
quartzManage.createJob(quartzJob);
|
} else {
|
quartzManage.updateJob(quartzJob);
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
});
|
|
|
}
|
|
}
|