**项目必须是springboot工程
quartz 版本 2.3.0**
# 如何在项目中使用?
## 1.依赖common-quartz工程``
```
org.springframework
spring-context
${版本以项目中最新的版本为主}
```
## 2.在项目yml添加配置
quartz:
namespace: svr-demo ##quartz的命名空间,名称一样实现消费负载
overwriteExistingJobs: true ##是否覆盖job
## 3.因为quartz使用的是数据库保存job的方式,所以spring Bean容器中必须要有javax.sql.DataSource数据源对象.同时库中要存在对应的表(建表sql在common-quartz 项目中)
## 4.以上配置均确认没问题后,可以在项目中用spring注入QuartzHelper工具类.
@Autowired
private QuartzHelper quartzHelper;
## QuartzHelper方法说明
根据cronString表达式添加任务到quartz框架中
public void addJob(
Class jobClass, job类
String cronString, cronString表达式
String jobKey, 任务ID
Map params 需要传递的参数
) throws Exception {
}
删除quartz框架中任务
public void removeJob(
String jobKeyString 任务ID
) throws Exception {
}
根据任务ID判断任务是否存在
public boolean isExistJob(
String jobKey 任务ID
) throws SchedulerException {
}
立即执行任务。
public void startNow(
Class jobClass, job类
String id, 任务ID
Map params 需要传递的参数
) throws Exception {
}
在指定时间点执行。
public void startAt(
Date time, 时间
Class jobClass,job类
String id, 任务ID
Map params 需要传递的参数
) throws Exception {
}
### 1.新增一个类实现 org.quartz.job接口
例如:
@Component
@Scope("prototype")
@DisallowConcurrentExecution//防止到了执行时间点前一任务还在执行中,但是这时有空闲的线程,那么马上又会执行,这样一来就会存在同一job被并行执行
public class FollowUpJob implements Job {
@Autowired
private WlyyQuotaResultDao wlyyQuotaResultDao;//指标结果Dao
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
}
}
2.在方法中注入QuartzHelper对象并且把例子中的任务添加到quartz框架中
quartzHelper.startNow(FollowUpJob.class, "followUpjobID", params);