概述
今天项目上有个类似闹钟的需求,想到了用quartz(石英)来实现功能。然后进入官网 http://www.quartz-scheduler.org/
发现已经更新到了2.2,可能好久没有用它了,发现和之前的有些不一样,花了一天的时间好好研究了一下,在这里做个记录。
首先需要理清楚一下 quartz的结构:
Job -----> JobDetail -----> Trigger ------>Scheduler
用 Job 来构造 JobDetail
JobDetail openJob = JobBuilder.newJob(OpenCameraJob.class).withIdentity(name, group).build();
这个地方貌似用的是google的Protocol Buffer , 不了解的同学们可以去看下,还是比较简单的
这个地方的name 和group ,实际上是两个String,大家理解一下,应该能够明白,name就是给这个JobDetail 起一个名字,group明显就是分组了;
CronTrigger startTrigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("name_start_" + cycle.getId(),group)
.withSchedule(CronScheduleBuilder.cronSchedule(startCronExpression))
.build();
然后是创建相对应的trigger ,同样可以给他起一个名字,和分个组什么的。
schedulerManager.scheduleJob(openJob, startTrigger);
讲Job 和startTrigger 添加到里面scheduler里面。
删除一个job
schedulerManager.deleteJob(new JobKey(name, group)
但是有个问题是我没有找到通过group来删除一组job的方法,希望有高人可以指点一下。
最后
以上就是高兴乌龟为你收集整理的关于quartz 2.2的使用方法的全部内容,希望文章能够帮你解决关于quartz 2.2的使用方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复