package com.project.core.config;
|
|
import com.project.common.exception.job.TaskException;
|
import com.project.quartz.domain.SysJob;
|
import com.project.quartz.mapper.SysJobMapper;
|
import com.project.quartz.service.ISysJobDelayService;
|
import com.project.quartz.util.DelayScheduleUtils;
|
import com.project.quartz.util.ScheduleUtils;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.quartz.Scheduler;
|
import org.quartz.SchedulerException;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.PostConstruct;
|
import java.util.List;
|
|
|
@Slf4j
|
@Component
|
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
public class JobInitConfig
|
{
|
|
private final ISysJobDelayService delayService;
|
private final Scheduler scheduler;
|
private final SysJobMapper jobMapper;
|
private final DelayScheduleUtils delayScheduleUtils;
|
|
/**
|
* 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据)
|
*/
|
@PostConstruct
|
public void initJob() throws SchedulerException, TaskException
|
{
|
log.info("初始化定时器,延时器---------------");
|
|
scheduler.clear();
|
|
List<SysJob> jobList = jobMapper.selectJobAll();
|
for (SysJob job : jobList)
|
{
|
ScheduleUtils.createScheduleJob(scheduler, job);
|
}
|
|
// List<SysJobDelay> delays = delayService.list();
|
// if (StringUtils.isNotEmpty(delays)){
|
// for (SysJobDelay delay : delays) {
|
// Map<String, Object> extraParam = new HashMap<>(); extraParam.put("orderNo", delay.getJobOrder());
|
// log.info("初始化延时任务:"+delay.getJobName());
|
// delayScheduleUtils.addSimpleJob(delay.getJobName(), delay.getTriggerTime(),extraParam , OrderCancelJob.class);
|
// }
|
// }
|
|
}
|
|
|
}
|