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