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 -> { 
 | 
            CronTrigger cronTrigger = quartzManage.getCronTrigger(quartzJob.getId()) ; 
 | 
            if (Objects.isNull(cronTrigger)){ 
 | 
                quartzManage.createJob(quartzJob); 
 | 
            } else { 
 | 
                quartzManage.updateJob(quartzJob); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
} 
 |