- 浏览: 3514047 次
- 性别:
- 来自: 大连
博客专栏
-
使用Titanium Mo...
浏览量:37479
-
Cordova 3.x入门...
浏览量:604323
-
常用Java开源Libra...
浏览量:678071
-
搭建 CentOS 6 服...
浏览量:87257
-
Spring Boot 入...
浏览量:399816
-
基于Spring Secu...
浏览量:69067
-
MQTT入门
浏览量:90474
文章分类
最新评论
-
afateg:
阿里云的图是怎么画出来的?用什么工具?
各云服务平台的架构图 -
cbn_1992:
博主,采用jdbctoken也就是数据库形式之后,反复点击获取 ...
Spring Security OAuth2 Provider 之 数据库存储 -
ipodao:
写的很是清楚了,我找到一份中文协议:https://mcxia ...
MQTT入门(6)- 主题Topics -
Cavani_cc:
还行
MQTT入门(6)- 主题Topics -
fexiong:
博主,能否提供完整源码用于学习?邮箱:2199611997@q ...
TensorFlow 之 构建人物识别系统
Quartz 是一个完全由java编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。
由James House创建并最初于2001年春天被加入sourceforge工程。之后归入OpenSymphony开源组织(2010年11月份关闭)。Terracotta公司在2009年收购了著名的Java开源缓存项目Ehcache以及Java任务调度项目Quartz。
http://quartz-scheduler.org/downloads/catalog
版本:Quartz 2.1.7
1、开始时间 startAt
2、简单触发器 withSchedule
SimpleScheduleBuilder.simpleSchedule() 可以设置间隔、重复次数
3、Cron触发器
CronScheduleBuilder.cronSchedule("0/5 * * * * ?") 使用Unix cron表达式
4、结束时间 endAt
5、作业监听器 addJobListener
6、启动多个作业 scheduleJob
7、列举所有作业 getJobKeys
8、手动触发作业 triggerJob
9、传递参数 usingJobData
10、取消/删除作业
11、作业出错时自动再执行
一直执行到成功:
执行n次后停止:
12、与Spring等框架的集成
略...
JWatch - A Quartz Monitor
http://code.google.com/p/jwatch/
Cron 表达式生成器 CronMaker
由James House创建并最初于2001年春天被加入sourceforge工程。之后归入OpenSymphony开源组织(2010年11月份关闭)。Terracotta公司在2009年收购了著名的Java开源缓存项目Ehcache以及Java任务调度项目Quartz。
http://quartz-scheduler.org/downloads/catalog
版本:Quartz 2.1.7
1、开始时间 startAt
SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); Date runTime = DateBuilder.evenSecondDate(new Date()); JobDetail job = JobBuilder.newJob(Job1.class).withIdentity("job1", "group1").build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1") .startAt(runTime) .build(); sched.scheduleJob(job, trigger); sched.start();
2、简单触发器 withSchedule
SimpleScheduleBuilder.simpleSchedule() 可以设置间隔、重复次数
SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); JobDetail job = JobBuilder.newJob(Job2.class).withIdentity("job2", "group2").build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger2","group2") .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()) .build(); sched.scheduleJob(job, trigger); sched.start();
3、Cron触发器
CronScheduleBuilder.cronSchedule("0/5 * * * * ?") 使用Unix cron表达式
SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); JobDetail job = JobBuilder.newJob(Job3.class).withIdentity("job3", "group3").build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger3","group3") .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); sched.scheduleJob(job, trigger); sched.start();
4、结束时间 endAt
SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); Date runTime = DateBuilder.evenSecondDate(new Date()); Date endTime = DateBuilder.evenMinuteDate(new Date()); JobDetail job = JobBuilder.newJob(Job4.class).withIdentity("job4", "group4").build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger4","group4") .startAt(runTime) .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()) .endAt(endTime) .build(); sched.scheduleJob(job, trigger); sched.start();
5、作业监听器 addJobListener
JobKey jobKey = new JobKey("dummyJobName", "group5"); JobDetail job = JobBuilder.newJob(Job5.class).withIdentity(jobKey).build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity( "dummyTriggerName", "group5").withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build(); Scheduler scheduler = new StdSchedulerFactory().getScheduler(); // Listener attached to jobKey scheduler.getListenerManager().addJobListener(new Job5Listener(), KeyMatcher.keyEquals(jobKey)); // Listener attached to group named "group 1" only. // scheduler.getListenerManager().addJobListener( // new HelloJobListener(), GroupMatcher.jobGroupEquals("group1") // ); scheduler.start(); scheduler.scheduleJob(job, trigger);
6、启动多个作业 scheduleJob
JobKey jobKeyA = new JobKey("job6A", "group6"); JobDetail jobA = JobBuilder.newJob(Job6A.class).withIdentity(jobKeyA).build(); JobKey jobKeyB = new JobKey("job6B", "group6"); JobDetail jobB = JobBuilder.newJob(Job6B.class).withIdentity(jobKeyB).build(); JobKey jobKeyC = new JobKey("job6C", "group6"); JobDetail jobC = JobBuilder.newJob(Job6C.class).withIdentity(jobKeyC).build(); Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity( "dummyTriggerName1", "group6").withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build(); Trigger trigger2 = TriggerBuilder.newTrigger().withIdentity( "dummyTriggerName2", "group6").withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build(); Trigger trigger3 = TriggerBuilder.newTrigger().withIdentity( "dummyTriggerName3", "group6").withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build(); Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(jobA, trigger1); scheduler.scheduleJob(jobB, trigger2); scheduler.scheduleJob(jobC, trigger3);
7、列举所有作业 getJobKeys
Scheduler scheduler = new StdSchedulerFactory().getScheduler(); for (String groupName : scheduler.getJobGroupNames()) { for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { String jobName = jobKey.getName(); String jobGroup = jobKey.getGroup(); List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey); Date nextFireTime = triggers.get(0).getNextFireTime(); System.out.println("[jobName] : " + jobName + " [groupName] : " + jobGroup + " - " + nextFireTime); } }
8、手动触发作业 triggerJob
SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); Date runTime = DateBuilder.evenSecondDate(new Date()); JobDetail job = JobBuilder.newJob(Job8.class).withIdentity("job8", "group8").build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger8","group8") .startAt(runTime) .build(); sched.scheduleJob(job, trigger); sched.start(); sched.triggerJob(new JobKey("job8", "group8")); sched.triggerJob(new JobKey("job8", "group8"));
9、传递参数 usingJobData
SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); Date runTime = DateBuilder.evenSecondDate(new Date()); JobDetail job = JobBuilder.newJob(Job9.class).withIdentity("job9", "group9") .usingJobData("jobSays", "Hello Quartz!") .build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger9","group9") .startAt(runTime) .build(); sched.scheduleJob(job, trigger); sched.start();
10、取消/删除作业
// removes the given trigger sched.unscheduleJob(new TriggerKey("job10", "group10")); // removes all triggers to the given job sched.deleteJob(new JobKey("job10", "group10"));
11、作业出错时自动再执行
一直执行到成功:
JobExecutionException e2 = new JobExecutionException(e); // fire it again e2.setRefireImmediately(true); throw e2;
执行n次后停止:
// allow 5 retries if (count >= 5) { JobExecutionException e = new JobExecutionException( "Retries exceeded"); //make sure it doesn't run again e.setUnscheduleAllTriggers(true); throw e; }
12、与Spring等框架的集成
略...
JWatch - A Quartz Monitor
http://code.google.com/p/jwatch/
Cron 表达式生成器 CronMaker
- QuartzTest.zip (977.5 KB)
- 下载次数: 188
- Quartz_Job_Scheduling_FrameworkCN_V1.0.0.pdf (5 MB)
- 下载次数: 212
- Quartz_Job_Scheduling_Framework_2006_.rar (1.2 MB)
- 下载次数: 130
评论
2 楼
beiwang
2014-08-02
恩,这个不错 在用.net版本的呵呵
http://www.tc5u.com
http://www.tc5u.com
1 楼
azhqiang
2014-08-02
刚好要用到调度,学习了。
发表评论
-
Web API分页
2018-11-13 13:38 1504(一)分页类型 逻辑分页(客户端分页):从数据库将所有记录查询 ... -
JAXB实例入门
2017-06-09 10:17 1704JAXB(Java Architecture for XML ... -
Java Web项目中的Event
2017-06-05 09:42 1613(1)Servlet的事件和监听器 *** Servle ... -
关于Java SPI
2017-05-04 12:07 1986SPI:Service Provider Interface ... -
Jackson实例入门
2017-05-03 12:55 1636Jackson:Java平台的JSON解析器。 版本: ja ... -
为什么https被redirect成了http?
2016-11-14 09:35 7639全站HTTPS并不是配置证书CA,改改路径URL那么简单! ... -
简化Java代码
2016-10-09 11:25 1247样板代码Boilerplate Code的 ... -
Java Web Project based on Spring
2016-09-28 11:21 985基于Spring开发Web项目的标配Library。 工具 ... -
Eclipse Scrapbook快速测试Java代码
2016-09-09 15:12 1277Scrapbook是Eclipse提供的特 ... -
Java爬取 百度图片&Google图片&Bing图片
2016-08-04 09:54 7456先看看抓取的结果。 抓关键字“美女”的百度图片: 抓关键字 ... -
学习Java容易混淆的一概念
2016-05-13 11:01 1608基础篇 (1)== vs equals() ... -
20年Java发展历程(1995-2015)
2015-03-25 21:58 2276Java语言作为现在最流行的编程语言之一,它已经经历了整整20 ... -
Java命令行选项解析之Commons-CLI & Args4J & JCommander
2014-11-27 12:09 22382熟悉Linux命令的都知道几乎所有程序都会提供一些命令行选项。 ... -
Java调用Native API之JNA
2014-11-10 12:09 7712Java调用C/C++的Native API一般采用JNI(J ... -
Java执行SSH/SCP之JSch
2014-08-27 17:17 11426JSch (Java Secure Channel)是纯Jav ... -
GC日志分析
2014-07-18 08:54 2821GC:Garbage Collection 垃圾回收 (1) ... -
Java元组类型之javatuples
2014-05-20 10:58 26916关于方法的返回值,经常需要返回2个值或多个值的一个序列,比如数 ... -
Java 8 之 反编译Lambda表达式(CFR)
2014-04-14 09:34 6471CFR(Class File Reader) - anoth ... -
Java 8 之 Optional类
2014-04-08 14:38 2931在Java中,null代表一个不存在的对象,如果对它进行操作就 ... -
Java 8 之 Lambda表达式
2014-04-01 09:14 16124Java 8历时2年8个月,这次升级是继Java 5之后对Ja ...
相关推荐
1.spring框架使用任务调度quartz的例子。 2.Web App用Quartz实现java schedule 3.详细讲解Quartz如何从入门到精通 4.用 Quartz 进行作业调度
Quartz 是个开源的作业调度框架,为在Java 应用程序中进行作业调度提供了简单而强大的机制。Quartz 允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。...
Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的...
Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作;任务定义为标准Java组件的...
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的...
使用Quartz实现作业、任务自动调度的经典例子—— 简单、清晰、明了,使你仅花几分钟就可快速掌握Java作业、任务自动调度的基本用法!
例子源码 博文链接:https://zmx.iteye.com/blog/1479582
Quartz是一个开源的作业调度框架
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器...
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听...
主要介绍了Java的作业调度类库Quartz基本使用指南,Quartz能够让类按照指定的计划顺序执行,需要的朋友可以参考下
java做的作业调度,让程度,用批处理运行!但是一定的时间,执行业务
对Quartz框架开发进行了很全面的介绍。作业调度必备资料。
一个纯 Java 实现的作业调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。版本1.5.2,内附中文帮助文档
quartz做的小例子
quartz jar包 quartz完成作业调度的强大轻量级框架 可以与spring结合使用,通过简单的配置 既可以实现作业的定时调度