SpringBoot+quartz动态定时任务组件

 

目录

背景:

开源代码地址

功能

动态定时任务依赖包

application.yml配置文件

配置文件说明

 

REST API接口

业务代码使用



背景:

 能够快速使用动态定时任务,基于quartz封装一个jar包。默认的配置信息,提供创建定时任务等等

 

开源代码地址

https://gitee.com/elvesfish/quartz-base-test

https://gitee.com/elvesfish/quartz-base

功能

  1. 支持不同的数据源配置,默认是c3p0数据源
  2. 默认是quartz集群模式
  3. 支持@Autowired注解
  4. 监听任务,打印日志
  5. 使用其他的数据源如druid,需要开启org.quartz.dataSource.enabledDataSource为true 参考工程DruidDBConfig类的配置
  6. 提供Rest访问API,quartz-base这个依赖包提供6个接口

动态定时任务依赖包

spring-boot工程依赖如下


	com.elvesfish
	quartz-base
	1.0.0

application.yml配置文件

##quartz-config
org:
  quartz:
    scheduler:
      instanceName: scheduler-quartz-test
    dataSource:
      enabledDataSource: false
      myDS:
        driver: com.mysql.cj.jdbc.Driver
        URL: jdbc:mysql://localhost:3306/quartz-base?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT     
        user: root
        password: 123456
        maxConnections: 100
        discardIdleConnectionsSeconds: 60
        validationQuery: SELECT 1 FROM DUAL
    threadPool:
      threadCount: 10
    listener:
      enabledJobListener: true  
      enabledTriggerListener: true  
    jobStore:
      txIsolationLevelSerializable: true  

配置文件说明

org.quartz.scheduler.instanceName
scheduler-quartz-test
调度实例名称(自己命名)
org.quartz.dataSource.enabledDataSource
false

是否开启数据源(默认是false)

false:走的是c3p0

true:使用的是自己定义的数据源如:durid等等

org.quartz.dataSource.myDS.driver
  驱动
org.quartz.dataSource.myDS.URL
  连接地址
org.quartz.dataSource.myDS.user
  用户名
org.quartz.dataSource.myDS.password
  密码
org.quartz.dataSource.myDS.maxConnections
100 最大连接数
org.quartz.dataSource.myDS.discardIdleConnectionsSeconds
60 丢弃连接时间
org.quartz.dataSource.myDS.validationQuery
SELECT 1 FROM DUAL
验证查询
org.quartz.threadPool.threadCount
20 线程数
org.quartz.listener.enabledJobListener
true
开启Job监听
org.quartz.listener.enabledTriggerListener
true
开启触发器监听
org.quartz.jobStore.txIsolationLevelSerializable
true
事务级别

 

REST API接口

    /scheduler-job/save
    /scheduler-job/edit
    /scheduler-job/pause
    /scheduler-job/resume
    /scheduler-job/list
    /scheduler-job/delete

业务代码使用

public class Test2Job implements Job {
    private static Logger logger = LoggerFactory.getLogger(Test2Job.class);
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        logger.info("test222效果融合");
    }
}

 

 

 

你可能感兴趣的:(JAVA)