package org.springblade.modules.quartz.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.quartz.CronTrigger; import org.springblade.modules.quartz.config.ScheduledManager; import org.springblade.modules.quartz.entity.ScheduledJob; import org.springblade.modules.quartz.enums.ScheduledStatus; import org.springblade.modules.quartz.mapper.ScheduledJobMapper; import org.springblade.modules.quartz.service.ScheduledJobService; import org.springblade.modules.quartz.vo.ScheduledJobVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.util.List; /** * 任务接口实现层 * @author zhongrj * @since 2022-03-17 */ @Service public class ScheduledJobServiceImpl extends ServiceImpl implements ScheduledJobService { @Autowired private ScheduledManager scheduledManager; /** * 初始化任务 */ @PostConstruct public void init(){ List list = list(); if (list.size()>0) { list.forEach(scheduledCron -> { //获取 triggerKey CronTrigger cronTrigger = scheduledManager.getCronTrigger(scheduledCron); if (null == cronTrigger) { //创建定时任务 scheduledManager.createScheduledJob(scheduledCron); }else if(ScheduledStatus.NORMAL.getType().equals(scheduledCron.getStatus())){ //恢复定时任务 scheduledManager.resumeJob(scheduledCron); }else if(ScheduledStatus.PAUSE.getType().equals(scheduledCron.getStatus())){ //暂停任务 scheduledManager.pauseJob(scheduledCron); } }); } } /** * 自定义定时任务分页数据 * @param page * @param scheduledJob * @return */ @Override public IPage selectPageScheduledJobList(IPage page, ScheduledJobVO scheduledJob) { return page.setRecords(baseMapper.selectPageScheduledJobPage(page,scheduledJob)); } }