Quartz TriggerListener 触发器监听器
Quartz Scheduler 可以对Trigger建立一个监听器,分别对Trigger的各种状态进行监听
实现监听器需要实现TriggerListener接口,然后注册到Scheduler上就可以了。
一:写一个类实现触发器监听接口
- package com.gary.operation.jobdemo.example1;
- import org.quartz.JobExecutionContext;
- import org.quartz.Trigger;
- import org.quartz.Trigger.CompletedExecutionInstruction;
- import org.quartz.TriggerListener;
- public class MyTriggerListener implements TriggerListener {
- @Override
- public String getName() {
- return "MyOtherTriggerListener";
- }
- /**
- * (1)
- * Trigger被激发 它关联的job即将被运行
- * Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed.
- */
- @Override
- public void triggerFired(Trigger trigger, JobExecutionContext context) {
- System.out.println("MyOtherTriggerListener.triggerFired()");
- }
- /**
- * (2)
- * Trigger被激发 它关联的job即将被运行,先执行(1),在执行(2) 如果返回TRUE 那么任务job会被终止
- * Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed
- */
- @Override
- public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) {
- System.out.println("MyOtherTriggerListener.vetoJobExecution()");
- return false;
- }
- /**
- * (3) 当Trigger错过被激发时执行,比如当前时间有很多触发器都需要执行,但是线程池中的有效线程都在工作,
- * 那么有的触发器就有可能超时,错过这一轮的触发。
- * Called by the Scheduler when a Trigger has misfired.
- */
- @Override
- public void triggerMisfired(Trigger trigger) {
- System.out.println("MyOtherTriggerListener.triggerMisfired()");
- }
- /**
- * (4) 任务完成时触发
- * Called by the Scheduler when a Trigger has fired, it's associated JobDetail has been executed
- * and it's triggered(xx) method has been called.
- */
- @Override
- public void triggerComplete(Trigger trigger, JobExecutionContext context,
- CompletedExecutionInstruction triggerInstructionCode) {
- System.out.println("MyOtherTriggerListener.triggerComplete()");
- }
- }
二进行注册: 细节与注册任务监听器一样(http://www.cnblogs.com/daxin/archive/2013/05/29/3105830.html)
- Registering A TriggerListener With The Scheduler To Listen To All Triggers
- scheduler.getListenerManager().addTriggerListener(myTriggerListener, allTriggers());
- Registering A TriggerListener With The Scheduler To Listen To A Specific Trigger
- scheduler.getListenerManager().addTriggerListener(myTriggerListener, triggerKeyEquals(triggerKey("myTriggerName", "myTriggerGroup")));
- Registering A TriggerListener With The Scheduler To Listen To All Triggers In a Group
- scheduler.getListenerManager().addTriggerListener(myTriggerListener, triggerGroupEquals("myTriggerGroup"));
Quartz TriggerListener 触发器监听器的更多相关文章
- Quartz Cron 触发器 Cron Expression 的格式
转自:http://blog.csdn.net/yefengmeander/article/details/5985064 上一文中提到 Cron触发器可以接受一个表达式来指定执行JOB,下面看看这个 ...
- quartz的触发器CronTriggerBean 配置
一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年:其中年不是必须的,也就是说任何一个表达式最少需要六项! ...
- spring quartz的触发器CrontriggerBean配置
每一个quartz的CronTrigger表达式分为七个子表达式,每个子表达式之间用空号分割,分别是:秒 分 时 日 月 星期 年.其中年不是必须的,所以CronTrigger最少有六个子表达式. 每 ...
- 【 Quartz】使用 JobListener (任务监听器可实现) 我想在一个任务执行后在执行第二个任务怎么办呢
http://liuzidong.iteye.com/blog/1147528 Quartz之JobExecutionException 博客分类: Java Quartz quartzjobexec ...
- Quartz定时任务学习(九)Quartz监听器
Quartz 提供了三种类型的监听器:监听 Job 的,监听 Trigger 的,和监听 Scheduler 自已的. 本章解释如何应用每一种类型来更好的管理你的 Quartz 应用,并获悉到什么事件 ...
- [译]Quartz.NET 框架 教程(中文版)2.2.x 之第七课 触发监听器和作业任务监听器
第七课:触发监听器和作业任务监听器 监听器是在调度器中基于事件机制执行操作的对象.你大概可以猜到,触发监听器接收响应跟触发器有关的事件,作业任务监听器接收响应跟作业任务有关的事件. 跟触发器有关的事件 ...
- Quartz使用(4) - Quartz监听器Listerner
1. 概述 Quartz的监听器用于当任务调度中你所关注事件发生时,能够及时获取这一事件的通知.类似于任务执行过程中的邮件.短信类的提醒.Quartz监听器主要有JobListener.Trigger ...
- Quartz任务调度(5)TriggerListener分版本超详细解析
TriggerListener 在我们的触发器监听器中,也包含了一系列监听方法 方法 说明 getName() 定义并返回监听器的名字 triggerFired() 当与监听器相关联的 Trigger ...
- Quartz集群
为什么选择Quartz: 1)资历够老,创立于1998年,比struts1还早,但是一直在更新(27 April 2012: Quartz 2.1.5 Released),文档齐全. 2)完全由Jav ...
随机推荐
- Asp.net GridView转换成DataTable
GridView绑定DataTable后,如何获取GridView绑定后显示的值,在项目需求需要的背景下,搜索了获取单元格显示文本的方法,然后写了一个静态方法,经过在项目中的使用,bug的修复,较为稳 ...
- Linux中SFTP命令
sftp和ftp是两种协议是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动. 1.常用登陆方式: 格式:sftp <user>@< ...
- 在Java中final类与一般类有什么样的区别
final修饰的类不能被继承. Sting就是一个被final修饰的类,我们只能用,不用继承final不仅可以修饰类,还可以修饰变量,被final修饰的变量就是一个常量,只能赋值一次注意final和f ...
- Android Studio中如何设置颜色拾色器工具
Android Studio如何设置颜色拾色器工具Color Picker? 你可能下载过一些获取颜色值的一些小工具, 这种方式获取颜色,需要先切换窗口转跳到桌面,然后打开拾色器小工具程序,然后去拾取 ...
- mysql中查询一个字段属于哪一个数据库中的哪一个表的方式
mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个 ...
- Vue(一):简介和安装
概况 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 API 实现响应 ...
- JDK1.6新特性,WebService强化
Web service是一个平台独立的,松耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序. Web ...
- 关于iPhone音频的那些事
音频文件(Audio File) 1.有两个概念(1).文件格式(File Format or Audio Containers)——描述文件本身的格式,里面的音频数据可以用不同的编码格式.例如:ca ...
- 行为类模式(八):状态(State)
定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以 ...
- (原创)用c++11打造好用的variant
variant类似于union,它能代表定义的多种类型,允许将不同类型的值赋给它.它的具体类型是在初始化赋值时确定.boost中的variant的基本用法: typedef variant<in ...