ZQN
2024-06-17 b1ff19545212508d3f65741ab889f0b6df82a511
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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);
//            }
//        }
 
    }
 
 
}