`
linvar
  • 浏览: 254730 次
  • 性别: Icon_minigender_1
  • 来自: 未定
社区版块
存档分类
最新评论

Quartz 使用笔记

    博客分类:
  • java
阅读更多
1.Quartz的主要构件:
SchedulerFactory, Scheduler, Job, JobDetail, Trigger
SchedulerFactory 标准实现StdSchedulerFactory,
从SchedulerFactory.getScheduler()拿到Scheduler就启动scheduler.start();
实现Job接口的类是我们具体要做的事,
JobDetail是为了封装Job,设置属性等,
Trigger是定义什么时候要执行job的execute()方法.
再使用scheduler.scheduleJob(jobDetail, trigger);将job跟trigger联系起来.
看起来结构是挺明晰的.

2.关于Job和JobDetail
每次scheduler执行job时,都会重新newInstance一个Job对象,所以job需要有一个没有参数的构造函数,job是无状态的.当job加入到Quartz系统中时,它需要job的一些基本信息,而这些是由JobDetail提供的
JobDetail jobDetail = new JobDetail("dumpJob",null,DumpJob.class);
JobDetail中还有一个JobDataMap,这是个Map的简单实现,这个jobDataMap可以在job的execute(JobExecutionContext context)方法中通过context得到.
Trigger也有个与它相关的JobDataMap
另外在job的execute()方法中只能抛出JobExecuteException,所以可能需要自己在execute中处理可能的异常. 抛出异常并不会终止Quartz的运行,

3.关于Trigger: SimpleTrigger和CronTrigger
可以使用TriggerUtils类构造各种Trigger
SimpleTrigger的参数选择:startTime,endTime, repeatCount,repeatInterval
CronTrigger类似linux下的cron
秒 分 时 日 月 星期 年

星期缩写SUN, MON, TUE, WED, THU, FRI, SAT
月份缩写JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
主要就是要构造cron表达式

4.关于jobStore
JobStore是保存scheduler工作资料(job, trigger,etc)的地方,
可以有两种实现RAMJobStore,JDBCJobStore


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics