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 queryWrapper = new LambdaQueryWrapper<>() ; queryWrapper.in(QuartzJob::getState, JobState.JOB_RUN.getStatus(),JobState.JOB_STOP.getStatus()); List 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(); } }); } }