转载:http://hi.baidu.com/xulin_1027/item/14a98dbc2c3d75432aebe3f3
Quartz 提供了三种类型的监听器:监听 Job 的,监听 Trigger 的,和监听 Scheduler 自已的。
本章解释如何应用每一种类型来更好的管理你的 Quartz 应用,并获悉到什么事件正在发生。
实现监听器的方法通用于所有的三种类型。可以分成以下步骤:
1. 创建一个 Java 类,实现监听器接口
2. 用你的应用中特定的逻辑实现监听器接口的所有方法
3. 注册监听器
JobListener 和 TriggerListener 可被注册为全局或非全局监听器。一个全局监听器能接收到所有的 Job/Trigger 的事件通知。而一个非全局监听器(或者说是一个标准的监听器) 只能接收到那些在其上已注册了监听器的 Job 或 Triiger 的事件。
一、 监听 Job 事件
org.quartz.JobListener 接口包含一系列的方法,它们会由 Job 在其生命周期中产生的某些关键事件时被调用。JobListener分为全局监听和局部监听,具体实现如下:
全局:
JobListener jobListener = new SimpleJobListener("SimpleJobListener"); scheduler.addGlobalJobListener(jobListener); scheduler.start();
局部:
JobListener jobListener =new SimpleJobListener("SimpleJobListener"); scheduler.addJobListener(jobListener); jobDetail.addJobListener(jobListener.getName()); scheduler.scheduleJob(jobDetail, trigger); scheduler.start();
注意:注册的方法,另外对于非全局的 JobListener,它应于任何引用到它的 JobDetail 使用 schedulerJob() 或 addJob() 方法注册之前被注册。
二、监听 Trigger 事件
org.quartz.TriggerListener 接口也包含一系列给 Scheduler 调用的方法。然而,与 JobListener 有所不同的是, TriggerListener 接口还有关于 Trigger 实例生命周期的方法。
监听的实现和job的监听基本差不多,对于全局和局部说明:
scheduler.addGlobalTriggerListener(new SimpleMyTriggerListener()); 和 scheduler.addTriggerListener( triggerListener );
对于局部监听要注意是的对特定的trigger.addTriggerListener( triggerListener.getName() );添加监听,注意名字要监听器的名称要相同。
和非全局的 JobListener 提到的相同的警告可以应用到这里来;
你必须在把它设置给 Trigger 实例并存储了 Trigger 之前把 TriggerListener 加入到 Scheduler 中。
三、 监听 Scheduler 事件
org.quartz.SchedulerListener 接口包含了一系列的回调方法,它们会在 Scheduler 的生命周期中有关键事件发生时被调用。
public void startScheduler() throws SchedulerException { Scheduler scheduler = null; scheduler = StdSchedulerFactory.getDefaultScheduler(); //添加监听 SchedulerListener schedulerListener = new SimpleSchedulerListener(); scheduler.addSchedulerListener(schedulerListener); scheduler.start(); //注册作业和触发器 JobDetail jobDetail = new JobDetail("PrintInfoJob",Scheduler.DEFAULT_GROUP, MyJob.class); Trigger trigger = TriggerUtils.makeSecondlyTrigger(5); trigger.setName("SimpleTrigger"); trigger.setStartTime(new Date()); scheduler.scheduleJob(jobDetail, trigger); }
在代码中,Scheduler 创建后是在 Job 注册之前被启动的。这就使得在 Job 部署时 jobScheduled() 方法能得到调用。我们也改变了 Trigger 只重复两次而不是无限的运行。这样能强制 triggerFinalized() 方法被调用,因为这个 Trigger 不再有机会触发了。除了这些人为的条件外,使用 SchedulerListener 就和使用 Job 或 Trigger 监听器是一样的了。
关于监听类可以查考API具体了解其中方法
相关推荐
此外,还可以自定义Trigger监听器,检查当前运行的Job,只有当特定Job组内没有正在执行的任务时,才允许新任务开始。 4. **并行执行**:默认情况下,Quartz允许多个Job并行执行,只要它们不在同一组或满足并行执行...
Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz中,任务和触发器的配置信息是通过数据库存储的,这使得任务调度具有高可用性和可扩展性。这里我们将详细探讨...
6. **监听器与插件**: Quartz提供了各种监听器,可以监听Job和Trigger的状态变化,便于调试和监控。此外,还有许多插件可以扩展Quartz的功能,如邮件通知、日志记录等。 综上所述,这个"Quartz定时任务简单列子...
Quartz 是一个开源的作业调度框架,常用于Java应用程序中实现定时任务的管理。它提供了丰富的API和功能,使得开发者可以灵活地定义和控制任务的执行。本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的...
7. **错误处理和监控**: 你可以设置监听器(`JobListener`和`TriggerListener`)来监控任务的执行状态,捕获异常并采取相应的措施。 在实际应用中,"WebApplication4"可能是你的项目名称,其中包含了实现上述功能的...
Quartz调度器可以在应用启动时加载这些配置,实现定时任务的自动化执行。 4. **插件部署** TaskManager.Plugins可能指的是Quartz的插件系统,它允许扩展Quartz的功能。Quartz提供了一些内置插件,如JobStore(用于...
文档可能还会涵盖高级主题,如监听器(Listeners)、插件(Plugins)和调度策略。 在"标签"中提到了"quartz.jar",这是Quartz的主要库文件,包含了所有必要的类和方法,用于在你的项目中实现和调度任务。"quartz...
6. `QRTZ_TRIGGER_LISTENERS`、`QRTZ_JOB_LISTENERS`:这两个表用于定义触发器和作业的监听器,监听器可以在触发器或作业的状态发生变化时执行自定义逻辑。 7. `QRTZ_CALENDARS`:日历表用于排除某些特定日期,例如...
Quartz允许添加作业监听器和触发器监听器,以便在任务执行前后进行日志记录、统计或其他操作。 Quartz提供的灵活性和强大功能使其成为Java定时任务的理想选择。通过理解上述基本概念和操作,你可以创建复杂的定时...
Quartz不仅可以调度单个任务,还可以构建一个集群的调度环境,并且可以与数据库交互,支持监听器、插件和集群功能,适合大型分布式系统和需要高可用性的场景。 Quartz还提供了更为复杂的调度表达式,可以精确地定义...
通过学习和掌握Quartz,开发者可以有效地管理和调度Java应用中的定时任务,提升系统的自动化水平和效率。在实际项目中,结合Quartz提供的丰富功能和灵活配置,可以构建出满足各种需求的定时任务系统。
通过学习和实践QuartZ提供的这些功能,你可以创建出满足各种需求的定时任务,如定期备份数据库、定时发送邮件、定时执行数据统计等。结合实际业务场景,QuartZ能够帮助你构建稳定且可扩展的定时任务管理系统。
7. **JobListener**和**TriggerListener**:这两种监听器接口用于监听作业的执行状态和触发器的状态变化,可以在特定事件发生时执行自定义操作。 8. **JobStore**:JobStore决定了任务的存储位置,可以选择在内存中...
Java SpringBoot Quartz 定时任务是一个广泛应用于企业级开发中的技术组合,主要用于自动化执行周期性的任务。SpringBoot作为轻量级的框架,简化了Spring应用的初始搭建以及开发过程,而Quartz则是一个功能强大的...
- **任务触发监听器**:通过实现TriggerListener和JobListener接口,可以监控任务的触发和执行状态。 6. **异常处理和监控** - **错误处理**:当Job执行出现异常时,可以通过设置`@DisallowConcurrentExecution`...
* 监听器和插件:应用程序可以通过实现一个或多个侦听器接口来捕获调度事件以监视或控制作业/触发行为 Quartz 的五大元素是: * Scheduler:调度器,quartz 工作时的独立容器 * Trigger:触发器,定义了调度任务的...
4. **监听器**:Quartz提供了多种监听器接口,如JobListener、TriggerListener,可以用来监听任务的开始、结束、执行异常等事件。 5. **错误处理**:在编写Job时,应考虑到可能出现的异常情况,通过try-catch结构...
Quartz是一款开源的作业调度框架,它允许在Java应用程序中创建和执行定时任务。...当然,Quartz的功能远不止于此,还有更高级的特性,如作业链、调度监听器、插件等,可以根据具体需求进行深入研究和应用。
这个项目“java监听器+quartz实现每天动态时间执行任务的功能”是结合了Java的监听器机制和Quartz定时任务框架来完成这样的需求。下面将详细解释这两个关键知识点。 **Java监听器** Java监听器是Java AWT和Swing库...
3. **Scheduler**:调度器负责管理和执行所有的Job和Trigger,它是Quartz的核心组件,负责监听Trigger并启动对应的Job。 4. **Data Binding**:JobDataMap允许你在Trigger和Job之间传递数据,这对于动态切换数据源...