# quartz
**Repository Path**: tanghanhan/quartz
## Basic Information
- **Project Name**: quartz
- **Description**: 定时任务调度
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-08-01
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# quartz
## 项目说明
本项目基于SpringBoot2.1.6.RELEASE版本,使用spring-boot-starter-quartz整合包,版本为2.3.1。
quartz.sql在resource/sql目录下,默认为MySQL数据库脚本。
使用swagger展示部分接口,更详细的在QuartzUtil工具类中
如果需要使用其他数据库脚本文件,在对应的Quartz版本的org.quartz.impl.jdbcjobstore目录下查找即可。
## 介绍
Quartz任务调度的主要元素有:Trigger(触发器)、Sheduler(任务调度器)、Job(任务)。
Trigger
>定义任务执行的方式、间隔时间。
Job(JobDetail)
>任务具体执行的逻辑。
Scheduler
>是Quartz的核心所在,所有的任务都是通过scheduler开始。
## 配置说明
**org.quratz.jobStore.misfireThreshold**
>调度引擎的忍耐时间。如果超过这个时间,调度引擎会认为此任务已超时,按照我们设置的超时策略去执行;如果未超过此时间,会将此期间所有未执行的任务依次执行。
## 注解说明
**@PersistJobDataAfterExecution**
>使JobDetail有状态,告诉Quartz在执行完execute()方法成功完成(未抛出异常)后,对Job的JobDetailMap进行更新后进行存储。
**@DisallowConcurrentExecution**
>禁止并发执行多个相同的JobDetail。同样的JobDetail必须等待当前的JobDetail执行完成后,才可以执行;如果某个JobDetail执行时间为5s,执行间隔时间为3s,当到达下一次执行时,下一个JobDetail会另起一个线程等待当前JobDetail执行完之后,直接执行(如果JobDetail执行时间比间隔时间长,会导致间隔时间失效)。