Quartz主要包含三个组件job,trigger,scheduler,也就对应了有三个监听器,当有重要事件发生,监听器的相应方法就会被调用。有了监听器我们就可以做一个简单的网页应用来监控这些定时任务的执行情况。现在就分别介绍这三种监听器
API:http://www.quartz-scheduler.org/docs/api/1.8.1/index.html
JobListener
官方文档:http://www.quartz-scheduler.org/docs/cookbook/JobListeners.html
JobListener 和 TriggerListener 可被注册为全局或非全局监听器。一个全局监听器能接收到所有的 Job/Trigger 的事件通知。而一个非全局监听器(或者说是一个标准的监听器) 只能接收到那些在其上已注册了监听器的 Job 或 Triiger 的事件。
我们有两种方式来实现job监听器:实现接口JobListener或者继承JobListenerSupport
全部:
JobListener jobListener = new SimpleJobListener("SimpleJobListener");
scheduler.addGlobalJobListener(jobListener);
scheduler.start();
局部:
JobListener jobListener =new SimpleJobListener("SimpleJobListener");
scheduler.addJobListener(jobListener);
// addJobListener必须在scheduleJob之前执行
jobDetail.addJobListener(jobListener.getName());
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
//2.0版本的方法
Ø 监听器所有的job
scheduler.getListenerManager()
.addJobListener(myJobListener, allJobs());
Ø 监听部分的job
scheduler.getListenerManager()
.addJobListener(myJobListener, keyEquals(jobKey("myJobName", "myJobGroup")));
Ø 监听特定组的job
scheduler.getListenerManager()
.addJobListener(myJobListener, groupEquals("myJobGroup"));
TriggerListener
http://www.quartz-scheduler.org/docs/cookbook/TriggerListeners.html
全局:
scheduler.addGlobalTriggerListener(new SimpleMyTriggerListener());
局部:
scheduler.addTriggerListener( triggerListener );
trigger.addTriggerListener( triggerListener.getName() );
//2.0版本的方法
Ø 监听器所有的job
Registering A TriggerListener With The Scheduler To Listen To All Triggers
scheduler.getListenerManager().addTriggerListener(myTriggerListener, allTriggers());
Ø 监听部分的job
Registering A TriggerListener With The Scheduler To Listen To A Specific Trigger
scheduler.getListenerManager()
.addTriggerListener(triggerListener, keyEquals(triggerKey("triggerName", "triggerGroup")));
Ø 监听特定组的job
scheduler.getListenerManager()
.addTriggerListener(myTriggerListener, groupEquals("myTriggerGroup"));
SchedulerListener
http://www.quartz-scheduler.org/docs/cookbook/SchedulerListeners.html
Extend TriggerListenerSupport and override methods for events you're interested in.
Ø 注册调度器监听器
Scheduler scheduler = null;
scheduler = StdSchedulerFactory.getDefaultScheduler();
//添加监听
SchedulerListener schedulerListener = new SimpleSchedulerListener();
scheduler.addSchedulerListener(schedulerListener);
scheduler.start();
//2.0版本的方法
scheduler.getListenerManager().addSchedulerListener(mySchedListener);
分享到:
相关推荐
这个项目“java监听器+quartz实现每天动态时间执行任务的功能”是结合了Java的监听器机制和Quartz定时任务框架来完成这样的需求。下面将详细解释这两个关键知识点。 **Java监听器** Java监听器是Java AWT和Swing库...
本章主要探讨了如何实现Quartz监听器,这是一项关键功能,它允许我们监控和响应Quartz调度器的各种事件。 Quartz监听器允许开发者在特定事件发生时执行自定义逻辑,例如当作业被触发、完成或者出现错误时。这为调试...
内容提要:简单介绍了监听器是 Quartz 框架的一个扩展点,实现一个监听器的基本步骤,最后说明了全局监听器和非全局监听器的区别。 第七章. 实现 Quartz 监听器 (第二部分) 内容提要:JobListener (Job 监听器) 的...
-- Quartz 监听器--> <listener-class>.flyer.lisenter.QuartzListener ``` JAVA Servlet监听器是Servlet容器中一个非常重要的组件,它可以帮助开发者监听一些重要事件的发生,并对这些事件做出相应的处理。
6. **QRTZ_JOB_LISTENERS** 和 **QRTZ_TRIGGER_LISTENERS**:这两个表用于跟踪作业和触发器的监听器,监听器可以在作业执行前后执行自定义逻辑。 7. **QRTZ_calendars**:此表用于存储日历对象,这些对象可以用来...
7. **插件和API**:Quartz还提供了丰富的插件,如JobListener、TriggerListener等,用于监听作业和触发器的生命周期事件。同时,其提供的API使得开发者可以直接通过代码创建和控制调度任务。 8. **持久化策略**:...
6. 创建`QRTZ_TRIGGER_LISTENERS`和`QRTZ_JOB_LISTENERS`表,记录触发器和作业的监听器。 7. 创建`QRTZ_FIRED_TRIGGERS`和`QRTZ_PAUSED_TRIGGER_GRPS`表,用于跟踪已触发的触发器和暂停的触发器组。 在使用Quartz ...
quartz scheduler 入门教程 Quartz Scheduler 是一种功能丰富、开源的任务调度程序库,可以在任何 Java 程序中使用。它可以用来创建简单或者复杂的执行次数可以达成千上万的任务。...Quartz 与很多组建和监听器通行。
6. **监听器(Listener)**:Quartz还允许添加作业监听器和触发器监听器,它们可以在作业执行前后或触发器触发时执行某些操作,提供了一种扩展点。 在你的示例项目中,可能会包含以下关键部分: - `Job`类:定义了...
- **监听器**:可以注册监听器来监控Job的状态变化,便于实现监控和报警等功能。 #### 六、Quartz的发展历程 - **创建与发展**:Quartz最初由James House创建于2001年,并于同年加入SourceForge项目。 - **...
同时,Quartz还支持插件机制,允许开发人员添加自定义的触发器、监听器和作业存储实现。 在使用"quartz-2.1.7.jar"时,开发者需要将其引入到项目类路径中,并通过`Scheduler`实例来配置和启动调度器。配置通常涉及...
5. **监听器(Listener)**:可以监听作业和触发器的生命周期事件,提供日志、监控等功能。 6. **持久化**:Quartz支持数据库持久化,即使在服务器重启后也能恢复之前的状态,保证任务的连续性。 7. **API和工具类...
6. `QRTZ_TRIGGER_LISTENERS`、`QRTZ_JOB_LISTENERS`:这两个表用于定义触发器和作业的监听器,监听器可以在触发器或作业的状态发生变化时执行自定义逻辑。 7. `QRTZ_CALENDARS`:日历表用于排除某些特定日期,例如...
Quartz提供了一些内置插件,如JobStore(用于存储作业和触发器)、TriggerListener(监听触发器状态变化)和JobListener(监听作业执行)。开发者也可以自定义插件,比如用于日志记录、性能监控或者任务调度策略调整...
6. QRTZ_TRIGGER_LISTENERS:记录Trigger监听器信息。 7. QRTZ_JOB_LISTENERS:记录Job监听器信息。 8. QRTZ_CALENDARS:存储日历信息,用于排除特定日期。 9. QRTZ_FIRED_TRIGGERS:记录已触发但尚未执行的Trigger...
5. **监听器(Listener)**:Quartz提供了多种监听器,如作业监听器、触发器监听器和调度器监听器,它们可以监听作业的生命周期事件,帮助开发者进行日志记录、异常处理等。 6. **集群支持**:在大型分布式系统中,...
7. **高级特性**:Quartz还提供了许多高级特性,如并发执行控制、作业监听器和触发器监听器、作业商店(JobStores)选择(如内存、JDBC、RAM等)、调度策略定制等。这些特性使得Quartz能够适应各种复杂的调度场景。 ...
此外,还可以自定义Trigger监听器,检查当前运行的Job,只有当特定Job组内没有正在执行的任务时,才允许新任务开始。 4. **并行执行**:默认情况下,Quartz允许多个Job并行执行,只要它们不在同一组或满足并行执行...
Quartz还自带了一些预建的插件和监听器。 8. **API设计**:主要的API接口是Scheduler,它提供了任务调度的核心操作,如添加、删除任务,以及控制调度状态。Job接口是任务的定义,仅包含execute()方法。...