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<ScheduledJobMapper, ScheduledJob> implements ScheduledJobService {
|
|
@Autowired
|
private ScheduledManager scheduledManager;
|
|
/**
|
* 初始化任务
|
*/
|
@PostConstruct
|
public void init(){
|
List<ScheduledJob> 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<ScheduledJobVO> selectPageScheduledJobList(IPage<ScheduledJobVO> page, ScheduledJobVO scheduledJob) {
|
return page.setRecords(baseMapper.selectPageScheduledJobPage(page,scheduledJob));
|
}
|
}
|