SSM框架极简便携式集成Quartz任务调度
来源:互联网 发布:数据加密技术原理 编辑:程序博客网 时间:2024/06/16 17:41
SSM框架极简便携式集成Quartz任务调度
SSM集成Quartz,实际操作只需两步:
1.配置自定义的Job(添加job的相关属性,修改任务方法)
2.将Job注册到JobRegister
即可在项目中运行属于你的Quartz任务调度,方便实用,易于操作。
1.添加maven依赖
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version></dependency>
2.配置基本任务属性类BaseJob
BaseJob:作用用于配置自定义Job时候存储属性内容,以及用于配置JobDataMap来传数据
import lombok.Getter;import lombok.Setter;import org.quartz.JobDataMap;/** * 基本任务属性 * * @author : CatalpaFlat * @date :Create in 16:14 2017/11/16 */public abstract class BaseJob { @Getter @Setter protected String jobName; @Getter @Setter protected String cronTime; @Getter @Setter protected String jobGroupName; @Getter @Setter protected String triggerGroupName; @Getter @Setter protected JobDataMap jobDataMap;}
3.自定义任务TestJob
自定义任务:通过构造方法,配置Job的基本属性,以及将业务逻辑在execute中进行呈现。
/** * 测试任务 * * @author CatalpaFlat * @date Create in 9:47 2017/11/15 */@Componentpublic class TestJob extends BaseJob implements Job { public TestJob() { super.setCronTime("0/2 * * * * ?"); super.setJobName(this.getClass().getSimpleName()); } /** * 把要执行的操作,写在execute方法中 */ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("\t\t"+TestJob.class.getName()+":"+ System.currentTimeMillis()); //TODO you logic }}
4.任务注册器JobRegister
任务注册器:JobRegister将自定义的Job注册进来,
/** * 注册自定义任务 * * @author CatalpaFlat * @date Create in 14:26 2017/11/16 */public interface JobRegister { /** * 测试Job */ Class<? extends BaseJob> TEST_JOB = TestJob.class; Class<? extends BaseJob> CHEN_JOB = ChenJob.class;}
5.自定义初始化Quartz类
InitQuartz:初始化job到Scheduler
/** * 初始化任务调度 * * @author : CatalpaFlat * @date :Create in 14:49 2017/11/16 */public class InitQuartz { private static Set<Class> jobs = new HashSet<>(); /** * 获取已经注册的任务 */ private void initJobNameList() throws IllegalAccessException { Field[] fields = JobRegister.class.getFields(); for (Field field : fields) { Class name = (Class) field.get(field.getName()); jobs.add(name); } System.out.println("有多少个job:"+jobs.size()); } /** * 动态添加任务 */ private void addJobByCronTrigger() throws IllegalAccessException, InstantiationException { for (Class cls : jobs) { BaseJob bJob = (BaseJob) cls.newInstance(); QuartzUtil.addJobByCronTrigger(cls, bJob); } } /** * 初始化Quartz */ public void init() { try { //初始化JobName initJobNameList(); //开始添加任务 addJobByCronTrigger(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } }}
6.将Quartz整合到spring
在application.xml中进行注入即可:
<!--spring启动后初始化Quartz--><bean id="initQuartz" class="com.chen.module.quartz.InitQuartz" init-method="init"/>
7.测试
直接启动Tomcat
8.小注意
若是出现重复初始化Quartz,那么可能是以下问题:
web.xml中配置了:
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
将其去除即可。
阅读全文
0 0
- SSM框架极简便携式集成Quartz任务调度
- SSM框架整合 quartz 定时任务调度
- SSM框架整合 quartz 定时任务调度
- Spring集成quartz任务调度框架
- 任务调度 Quartz框架
- 任务调度框架Quartz
- Quartz任务调度框架
- 任务调度框架Quartz
- 任务调度框架Quartz
- Quartz------任务调度框架
- 在Spring框架中集成Quartz实现任务调度
- Spring集成Quartz任务调度
- springBoot 集成 Quartz任务调度
- springBoot 集成 Quartz任务调度
- ssm框架集成Quartz定时器
- Quartz作业调度框架集成
- Quartz.NET 任务调度框架
- 任务调度框架 Quartz.NET
- window下搭建Python3.5+selenium3.0.1+pycharm环境
- hadoop(2)什么是hdfs
- Highcharts 堆叠柱形图
- Android Ip常用命令
- 论行星减速器
- SSM框架极简便携式集成Quartz任务调度
- solr5 从Mysql查询数据
- BT.656标准简介
- 阿里云服务器使用免费个人DV证书部署nginx+https站点
- [转]如何编写优质代码的十条不能错过的法则
- 文章标题
- Spring Boot 将WAR文件部署到Tomcat
- CentOS7使用firewalld打开关闭防火墙与端口
- css 实现三角形