Springboot2.x集成Quartz(2.3.1)持久化数据库(mysql), 以及数据库中无记录问题

集成过程可以参照此文章:https://blog.csdn.net/HXNLYW/article/details/95055601

本文要讲的是在集成过程中一个小问题,集成后添加Job时,数据库中未生成记录问题(无记录)

Springboot应用启动过程中会打印以下内容:

2019-09-24 17:26:07.199  INFO 10996 --- [           main] org.quartz.core.QuartzScheduler          : Scheduler meta-data: Quartz Scheduler (v2.3.1) 'schedulerFactoryBean' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.springframework.scheduling.quartz.LocalDataSourceJobStore' - which supports persistence. and is not clustered.

问题原因: 如上面打印代码所说,scheduler为开始。虽然添加的Job也能成功执行,但数据库中会无记录,导致持久化失败。

解决方案:在应用启动后执行: scheduler.start();关键代码如下:

    @PostConstruct
    public void startScheduler() {
        try {
            scheduler.start();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }

        可以将上述代码添加到你的QuartzConfig配置类中,也可以添加到自定义的QuartzService实现类中,这两种方式任选其一

        代码如下:

         方法一:


@Configuration
public class QuartzConfig {
    .....
    .....
    ..... //其他代码省略
     @Bean
    public Scheduler scheduler() {
        return schedulerFactoryBean().getScheduler();
    }

    @PostConstruct
    public void startScheduler() {
        try {
            scheduler().start();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
}

        方法二

@Service
public class QuartzServiceImpl implements QuartzService {


    @Autowired
    private Scheduler scheduler;

    @PostConstruct
    public void startScheduler() {
        try {
            scheduler.start();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天使马克

写博客不易,客观打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值