SpringBoot整合Quartz(升级版)

本片文章是对上一篇《SpringBoot整合Quartz》的升级。java

建立SpringBoot项目

参考:http://www.javashuo.com/article/p-nqmlkfay-bq.htmlspring

添加Quartz依赖,配置pom文件

<!--用到Me-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version> 4.3.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version> 4.3.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>

建立QuartzConfig配置类

@Configuration
public class QuartzConfig {

    @Bean
    public SchedulerFactoryBean schedulerFactoryBean(){
        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
        return schedulerFactoryBean;
    }

    @Bean
    public Scheduler scheduler(){
        return schedulerFactoryBean().getScheduler();
    }
}

建立job

public class CloseTradeJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("测试job = " + new Date());
    }
}

建立Task

@Service
public class MyTask {
    @Autowired
    public Scheduler scheduler;

    @PostConstruct //等同于init-method
    public void init(){
        //定义jobdetail
        JobDetail jobDetail = JobBuilder.newJob(CloseTradeJob.class).withIdentity("close1", "closeTrade").build();
        //定义trigger
        SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5)
                .repeatForever();
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "closeTrade").startNow()
                .withSchedule(simpleScheduleBuilder).build();
        //启动job
        try {
            scheduler.scheduleJob(jobDetail, trigger);
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
}

测试

相关文章
相关标签/搜索