1.jar包
2.业务实现类 继承Job接口
public class TestJob implements Job { @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { // TODO Auto-generated method stub System.out.println("Happy everyDay--"+new Date()); } }
3.通过quartz调用业务实现类,实习定时器功能
package test.fjxhx.job; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; public class CronRunner { public static void main(String[] args) { try { JobDetail jobdetail =JobBuilder.newJob(TestJob.class).withIdentity("myjob", "job-group").build(); CronTrigger cronTrigger=TriggerBuilder.newTrigger().withIdentity("cronTrigger", "trigger-group").withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build(); SchedulerFactory sFactory=new StdSchedulerFactory(); Scheduler scheduler=sFactory.getScheduler(); scheduler.scheduleJob(jobdetail, cronTrigger); scheduler.start(); Thread.sleep(20000);// 等待20秒 scheduler.shutdown();// 关闭调度程 } catch (Exception e) { // TODO: handle exception } } }
克隆表达式
一个克隆表达式是一个由空白间隔6个或者7个字段的字符串。
格式:
字段名 |
必须有? |
值范围 |
允许的特殊字符 |
Seconds |
YES |
0-59 |
, - * / |
Minutes |
YES |
0-59 |
, - * / |
Hours |
YES |
0-23 |
, - * / |
Day of month |
YES |
1-31 |
, - * ? / L W C |
Month |
YES |
1-12 or JAN-DEC |
, - * / |
Day of week |
YES |
1-7 or SUN-SAT |
, - * ? / L C # |
Year |
NO |
empty, 1970-2099 |
, - * / |
例子:
* * * * ? *
0 0/5 14,18,3-39,52 ? JAN,MAR,SEP MON-FRI 2002-2010
特殊字符
- * 表示所有值 ;
- ? 表示未说明的值,即不关心它为何值;
- - 表示一个指定的范围;
- , 表示附加一个可能值;
- / 符号前表示开始时间,符号后表示每次递增的值;
- L ("last") "L" 用在day-of-month字段意思是 "这个月最后一天";用在 day-of-week字段, 它简单意思是 "7" or "SAT"。 如果在day-of-week字段里和数字联合使用,它的意思就是 "这个月的最后一个星期几" – 例如: "6L" means "这个月的最后一个星期五". 当我们用“L”时,不指明一个列表值或者范围是很重要的,不然的话,我们会得到一些意想不到的结果。
- W ("weekday") –只能用在day-of-month字段。用来描叙最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近这个月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第16天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。“W”字符仅能在day-of-month指明一天,不能是一个范围或列表。
也可以用“LW”来指定这个月的最后一个工作日。
- # -只能用在day-of-week字段。用来指定这个月的第几个周几。例:在day-of-week字段用"6#3"指这个月第3个周五(6指周五,3指第3个)。如果指定的日期不存在,触发器就不会触发。
- C ("calendar") – 指和calendar联系后计算过的值。例:在day-of-month 字段用“5C”指在这个月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在这周日或之后包括calendar的第一天。
在MONTH和Day of week字段里对字母大小写不敏感。
一些例子
表达式 |
意思(触发时刻) |
0 0 12 * * ? |
每天中午12点 |
0 15 10 * * ? 2005 |
在2005年的每天10:25 |
0 10,44 14 ? 3 WED |
在3月里每个周三的14:10和14:44 |
0 15 10 ? * 6L 2002-2005 |
从2002年到2005年里,每个月的最后一个星期五的10:15 |
0 0 12 1/5 * ? |
从当月的第一天开始,然后在每个月每隔5天的12:00 |
0 15 10 ? * 6#3 |
每个月第3个周五的10:15 |
注意在day-of-week和day-of-month字段里使用“?”和“*”的效果。
参考资料:
http://liuzidong.iteye.com/blog/1118992
http://blog.csdn.net/cuihaiyang/article/details/6742869
相关推荐
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业
Quartz是一个java定时任务方面的例子QuartzDemo
关于java Quartz的小例子 关于java Quartz的小例子
一个简单的quartz小例子,还不是很全,只有简单的实现。
lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子
quartz 详细例子 quartz 详细例子 java 调度 工作流
在 myeclipse6.0.1下调试成功可直接运行的spring的quartz的例子,很适合刚接触quartz调度学习。
spring+quartz定时小例子,架包+文档 我自己整理的
quartz文件小例子.
quartz使用例子 每一步讲解的都非常的详细
Quartz2.2.1的15个例子的代码样例,初步且全面地了解quartz的使用。
spring之quartz例子,与oracle整合,不过spring中的MethodInvokingJobDetailFactoryBean方法在存数据库时序列化有bug,在本例子中,使用了修复后的MethodInvokingJobDetailFactoryBean方法,避免了因序列化而报错。
Spring+Quartz实现任务调度的小例子.本来不要资源分的,可是CSDN发布资源最低要求填写分值为1分,没办法了。
一个spring quartz的定时任务,放到tomcat下就可以看到后台打印了
刘冬编写Spring.NET学习笔记25——整合Quartz.NET例子。 原文: http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_QuartzNet.html
quartz官网例子分析共26页.pdf.zip
quartz的简单例子和API
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...
Spring集成quartz跑定时任务实例 自己写的例子并为实现job 有测试的主函数,请参考http://www.blogjava.net/baoyaer/articles/155645.html 博客信息 看此代码,项目里分为两大块,com文件夹下 为上面博客相关学习...