quartz 添加监听器listener
全局注册,所有Job都会起作用
JobCountListener listener = new JobCountListener();
sched.getListenerManager().addJobListener(listener);
给固定的job添加监听器
JobCountListener listener = new JobCountListener();
Matcher<JobKey> matcher = KeyMatcher.keyEquals(new JobKey("hello3", "group1"));
scheduler.getListenerManager().addJobListener(listener, matcher);
指定一组任务
GroupMatcher<JobKey> matcher = GroupMatcher.jobGroupEquals("group1");
sched.getListenerManager().addJobListener(new MyJobListener(), matcher);
可以根据组的名字匹配开头和结尾或包含
JobCountListener listener = new JobCountListener();
GroupMatcher<JobKey> matcher = GroupMatcher.groupStartsWith("g");
//GroupMatcher<JobKey> matcher = GroupMatcher.groupContains("g");
scheduler.getListenerManager().addJobListener(listener, matcher);
/**
* @author sky
*/
public class JobCountListener implements org.quartz.JobListener {
private Integer count; public String getName() {
return "job监听";
} public void jobToBeExecuted(JobExecutionContext jobExecutionContext) {
System.out.println("任务执行前。");
} public void jobExecutionVetoed(JobExecutionContext jobExecutionContext) {
System.out.println("如果当TriggerListener中的vetoJobExecution方法返回true时,那么执行这个方法。任务被终止");
} public void jobWasExecuted(JobExecutionContext jobExecutionContext, JobExecutionException e) {
JobDetail jobDetail = jobExecutionContext.getJobDetail();
System.out.println("Job :" + jobDetail.getKey().getGroup() + "." + jobDetail.getKey().getName());
Integer current = (Integer) jobExecutionContext.getJobDetail().getJobDataMap().get("count");
System.out.println("调用次数:" + current);
} }
package com.sky.JobSchedule.Job; import org.quartz.*;
import org.springframework.stereotype.Component; import java.text.SimpleDateFormat;
import java.util.Date; /**
* @author sky
*/
@Component
@DisallowConcurrentExecution
@PersistJobDataAfterExecution
public class JobCron implements Job {
String name; public JobCron() {
System.out.println("Hello, Quartz sky! ----------------------");
} public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
Integer count = (Integer) jobDataMap.get("count");
if(count==null){
count=0;
}
count++;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("Hello, " + count + " sky !" + formatter.format(new Date()));
jobExecutionContext.getJobDetail().getJobDataMap().put("count", count);
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
重启服务,需要重新添加监听器。
quartz 添加监听器listener的更多相关文章
- [C#][Quartz]添加监听器
namespace Quartz.Listener { public class SchedulerListener : SchedulerListenerSupport { private stat ...
- 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)
一.Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...
- Quartz任务监听器
在Quartz框架提供了JobListener接口,可在任务执行前.任务被拒绝及任务执行完成后实现对任务的拦截,该接口的声明如下: public interface JobListener { /** ...
- javaweb学习总结(四十七)——监听器(Listener)在开发中的应用
监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...
- javaWeb学习总结(11)- 监听器(Listener)在开发中的应用
监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...
- java之Servlet监听器Listener
常用应用场景:单点登录.统计在线人数 一.简介 (一)概述 1.Listener 用于监听 java web程序中的事件,例如创建.修改.删除Session.request.context等,并触发响 ...
- JAVA监听器Listener
JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...
- JavaWeb学习 (二十七)————监听器(Listener)在开发中的应用
监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...
- Servlet 监听器Listener详解
转自:http://blog.csdn.net/u012228718/article/details/41730799 一.简介 (一)概述 1.Listener 用于监听 Javaweb程序中的事件 ...
随机推荐
- nessus 漏洞扫描安装和使用
介绍 Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件.总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件. 软件特色 * 提供完整的电脑漏洞扫描服务, 并随时更 ...
- Docker学习总结(12)——非常详细的 Docker 学习笔记
一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...
- Qt之QTimer
简述 QTimer类提供了重复和单次触发信号的定时器. QTimer类为定时器提供了一个高级别的编程接口.很容易使用:首先,创建一个QTimer,连接timeout()信号到适当的槽函数,并调用sta ...
- (六)storm-kafka源代码走读之PartitionManager
PartitionManager算是storm-kafka的核心类了,如今開始简单分析一下.还是先声明一下,metric部分这里不做分析. PartitionManager主要负责的是消息的发送.容错 ...
- Hadoop Serialization -- hadoop序列化具体解释 (2)【Text,BytesWritable,NullWritable】
回想: 回想序列化,事实上原书的结构非常清晰,我截图给出书中的章节结构: 序列化最基本的,最底层的是实现writable接口,wiritable规定读和写的游戏规则 (void write(DataO ...
- 泛泰 A850 4.1.2 刷第三方专用Recovery合集
下载 http://download.csdn.net/detail/benjaminwan/7406089 专用于刷基于AOSP4.1.2的乐蛙和MIUIV5 由于本人制作的第三方ROM,为了通刷, ...
- Perfect Rectangle(完美矩形)
我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域. 每个矩形用左下角的点和右上角的点的坐标来表示.例如, 一个单位正方形可以表示为 [1,1,2,2] ...
- UVA 11020 - Efficient Solutions(set)
UVA 11020 - Efficient Solutions 题目链接 题意:每个人有两个属性值(x, y).对于每个人(x,y)而言,当有还有一个人(x', y'),假设他们的属性值满足x' &l ...
- MyEclipse常见错误汇总,中英注释版(长期更新)
No.1 当一条语句漏写分号时错误描述如下 Syntax error, insert ";" to complete Statement(语法错误:插入分号完成语句描述) No.2 ...
- mysql创建新用户时 连接报错 (解决方案把匿名用户删除)
ERROR (): Access denied for user 'ljcc'@'localhost' (using password: YES) 步骤 创建了mysql的用户 insert mysq ...