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