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 lombok.extern.slf4j.Slf4j; 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 @Slf4j public class TimerBizSevice { @Resource private QuartzJobMapper quartzJobMapper ; @Resource private QuartzManage quartzManage; /** * 初始化加载定时任务 */ @PostConstruct public void init () { log.error("================执行"+System.currentTimeMillis()); 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 { log.error("================执行"+quartzJob.getId()); CronTrigger cronTrigger = quartzManage.getCronTrigger(quartzJob.getId()) ; if (Objects.isNull(cronTrigger)){ quartzManage.createJob(quartzJob); } else { quartzManage.updateJob(quartzJob); } }catch (Exception e){ // log.error("================执行"+quartzJob.getId()); e.printStackTrace(); } }); } }