quartz定时任务持久化并操作定时任务

前言:我学习了网上的资料,把项目整理成前后端分离的项目,后端:springboot quartz mybatis 前端: vue项目
项目的gitee地址: https://gitee.com/qinenqi/quartzdemo

  1. 引入依赖

    org.springframework.boot
    spring-boot-starter-quartz
  2. 在resource下面新建quartz.properties文件(只列出了核心配置,详情请参考gtiee上的代码)
    org.quartz.dataSource.qzDS.driver = com.mysql.jdbc.Driver
    org.quartz.dataSource.qzDS.URL = jdbc:mysql://127.0.0.1:3306/quartz? useUnicode=true&characterEncoding=utf8
    org.quartz.dataSource.qzDS.user = root
    org.quartz.dataSource.qzDS.password = root
  3. application.yml 配置对应的数据库
  4. 目录结构
    在这里插入图片描述
  5. 新建SchedulerConfig类,用来配置quartz

import org.quartz.Scheduler;
import org.quartz.ee.servlet.QuartzInitializerListener;
import org.springframework.beans.factory.config.PropertiesFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import java.io.IOException;
import java.util.Properties;

/**

  • quartz 配置
    */
    @Configuration
    public class SchedulerConfig {

    @Bean(name=“SchedulerFactory”)
    public SchedulerFactoryBean schedulerFactoryBean() throws IOException {
    SchedulerFactoryBean factory = new SchedulerFactoryBean();
    factory.setQuartzProperties(quartzProperties());
    return factory;
    }

    @Bean
    public Properties quartzProperties() throws IOException {
    PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
    propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties"));
    //在quartz.properties中的属性被读取并注入后再初始化对象
    propertiesFactoryBean.afterPropertiesSet();
    return propertiesFactoryBean.getObject();
    }

    /**

    • quartz初始化监听器
    • 这个监听器可以监听到工程的启动,在工程停止再启动时可以让已有的定时任务继续进行。
    • @return
      */
      @Bean
      public QuartzInitializerListener executorListener() {
      return new QuartzInitializerListener();
      }

    /**
    *
    *通过SchedulerFactoryBean获取Scheduler的实例
    */

    @Bean(name=“Scheduler”)
    public Scheduler scheduler() throws IOException {
    return schedulerFactoryBean().getScheduler();
    }

}
6. 对应的crud操作等省略
7. 前端项目省略
该项目对应的gitee上的地址为:https://gitee.com/qinenqi/quartzdemo


版权声明:本文为weixin_41695138原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。