倪影Alone
2024-09-03 507d193d16bc32a7cacfd2bf2c19e1db24390414
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
60
61
62
63
64
package com.itstyle.quartz.config;
 
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
 
import com.itstyle.quartz.entity.QuartzEntity;
import com.itstyle.quartz.service.IJobService;
/**
 * 初始化一个测试Demo任务
 * 创建者 科帮网
 * 创建时间    2018年4月3日
 */
@Component
public class TaskRunner implements ApplicationRunner{
    
    private final static Logger LOGGER = LoggerFactory.getLogger(TaskRunner.class);
    
    @Autowired
    private IJobService jobService;
    @Autowired
    private Scheduler scheduler;
    
    @Override
    public void run(ApplicationArguments var) throws Exception{
        /**
         * 系统启动的时候会初始化一个任务
         */
//        Long count = jobService.listQuartzEntity(null);
//        if(count==0){
//            LOGGER.info("初始化测试任务");
//            QuartzEntity quartz = new QuartzEntity();
//            quartz.setJobName("test01");
//            quartz.setJobGroup("test");
//            quartz.setDescription("测试任务");
//            quartz.setJobClassName("com.itstyle.quartz.job.ChickenJob");
//            quartz.setCronExpression("*/5 * * * * ?");
//            quartz.setJobMethodName("test1");
//            Class cls = Class.forName(quartz.getJobClassName()) ;
//            cls.newInstance();
//            //构建job信息
//            JobDetail job = JobBuilder.newJob(cls).withIdentity(quartz.getJobName(),
//                    quartz.getJobGroup())
//                    .withDescription(quartz.getDescription()).build();
//            job.getJobDataMap().put("jobMethodName", "test1");
//            // 触发时间点
//            CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(quartz.getCronExpression());
//            Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger"+quartz.getJobName(), quartz.getJobGroup())
//                    .startNow().withSchedule(cronScheduleBuilder).build();
//            //交由Scheduler安排触发
//            scheduler.scheduleJob(job, trigger);
//        }
    }
 
}