chenweida 6eca8beed6 首次提交 | 6 vuotta sitten | |
---|---|---|
.. | ||
src | 6 vuotta sitten | |
pom.xml | 6 vuotta sitten | |
readme.MD | 6 vuotta sitten |
项目必须是springboot工程 quartz 版本 2.3.0
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${版本以项目中最新的版本为主}</version>
</dependency>
quartz:
namespace: svr-demo ##quartz的命名空间,名称一样实现消费负载
overwriteExistingJobs: true ##是否覆盖job
@Autowired
private QuartzHelper quartzHelper;
根据cronString表达式添加任务到quartz框架中
public void addJob(
Class jobClass, job类
String cronString, cronString表达式
String jobKey, 任务ID
Map<String, Object> 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<String, Object> params 需要传递的参数
) throws Exception {
}
在指定时间点执行。
public void startAt(
Date time, 时间
Class jobClass,job类
String id, 任务ID
Map<String, Object> params 需要传递的参数
) throws Exception {
}
例如:
@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);