quartz作业监听
来源:互联网 发布:linux 覆盖复制 编辑:程序博客网 时间:2024/06/03 13:25
定时任务运行的程序出现异常时会输出异常信息
package com.quartz;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class HelloJob implements Job {public void execute(JobExecutionContext context)throws JobExecutionException {System.out.println(new Date()+" : Hello Quartz! 123");//测试/*String str1 = null ;if(str1.equals("123")){System.out.println("str1.equals123");}输出:jobToBeExecutedJob : group1.dummyJobName,triggerName:group1.dummyTriggerName is going to start...Sat May 20 17:52:50 CST 2017 : Hello Quartz! 123jobWasExecutedJob : group1.dummyJobName is finished...Exception thrown by: group1.dummyJobName Exception: org.quartz.SchedulerException: Job threw an unhandled exception.
[See nested exception: java.lang.NullPointerException]*/// Throw exception for testingthrow new JobExecutionException("Testing Exception");}}
package com.quartz;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.quartz.JobListener;public class HelloJobListener implements JobListener {public static final String LISTENER_NAME = "dummyJobListenerName";@Overridepublic String getName() {return LISTENER_NAME; // must return a name//return null; //Exception in thread "main" java.lang.IllegalArgumentException: JobListener name cannot be empty.}// Run this if job is about to be executed.@Overridepublic void jobToBeExecuted(JobExecutionContext context) {String jobName = context.getJobDetail().getKey().toString();String triggerName = context.getTrigger().getKey().toString();System.out.println("jobToBeExecuted");System.out.println("Job : " + jobName+",triggerName:" +triggerName + " is going to start...");}// No idea when will run this?@Overridepublic void jobExecutionVetoed(JobExecutionContext context) {System.out.println("jobExecutionVetoed");}// Run this after job has been executed@Overridepublic void jobWasExecuted(JobExecutionContext context,JobExecutionException jobException) {System.out.println("jobWasExecuted");String jobName = context.getJobDetail().getKey().toString();System.out.println("Job : " + jobName + " is finished...");if (!jobException.getMessage().equals("")) {System.out.println("Exception thrown by: " + jobName+ " Exception: " + jobException.getMessage()+"\n\n");}}}
package com.quartz;import org.quartz.CronScheduleBuilder;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.JobKey;import org.quartz.Scheduler;import org.quartz.Trigger;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;import org.quartz.impl.matchers.GroupMatcher;import org.quartz.impl.matchers.KeyMatcher;import com.quartz.HelloJobListener;public class Quartz2JobListener {public static void main(String[] args) throws Exception {JobKey jobKey = new JobKey("dummyJobName", "group1");JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity(jobKey).build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("dummyTriggerName", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0/1 * * * * ?")).build();Scheduler scheduler = new StdSchedulerFactory().getScheduler();// Listener attached to jobKey//scheduler.getListenerManager().addJobListener(new HelloJobListener(),KeyMatcher.keyEquals(jobKey));// Listener attached to group named "group 1" only.//和上面注释的attached方法均可 scheduler.getListenerManager().addJobListener(new HelloJobListener(), GroupMatcher.jobGroupEquals("group1"));scheduler.start();scheduler.scheduleJob(job, trigger);try {Thread.sleep(2000);//只会输出3条结果scheduler.shutdown();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.jobToBeExecutedJob : group1.dummyJobName,triggerName:group1.dummyTriggerName is going to start...Sat May 20 19:55:50 CST 2017 : Hello Quartz! 123jobWasExecutedJob : group1.dummyJobName is finished...Exception thrown by: group1.dummyJobName Exception: Testing ExceptionjobToBeExecutedJob : group1.dummyJobName,triggerName:group1.dummyTriggerName is going to start...Sat May 20 19:55:51 CST 2017 : Hello Quartz! 123jobWasExecutedJob : group1.dummyJobName is finished...Exception thrown by: group1.dummyJobName Exception: Testing ExceptionjobToBeExecutedJob : group1.dummyJobName,triggerName:group1.dummyTriggerName is going to start...Sat May 20 19:55:52 CST 2017 : Hello Quartz! 123jobWasExecutedJob : group1.dummyJobName is finished...Exception thrown by: group1.dummyJobName Exception: Testing Exception*/
参考:
http://www.yiibai.com/quartz/quartz-joblistener.html
阅读全文
0 0
- quartz作业监听
- Quartz进行作业调度
- Quartz作业调度
- 作业调度之quartz
- Quartz 作业调度
- Quartz作业调度
- 第九节:Quartz中的作业
- Quartz 作业调度
- Quartz.NET--JOB作业
- 作业调度框架--Quartz
- quartz的作业调度
- quartz作业调度
- Quartz作业调度框架
- Quartz 作业调度框架
- Quartz作业调度框架
- 作业调度框架Quartz
- Quartz作业调度框架
- Quartz作业调度框架
- ubuntu修改root密码。
- 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g
- JSP乱码问题解决
- 09:膨胀的木棍
- 函数的祖先
- quartz作业监听
- 【OpenCV】检测人脸、眼睛、鼻子、耳朵、嘴
- paper-8-MPTCP-in-MANET
- AVL树的插入操作
- HDU 2102 A计划
- MyBatis简介和环境搭建
- 多线程---java同步方法和同步代码块的区别
- paper-9-Research and Implementation of MultiPath TCP on Mobile Smart Deviceses
- acm 感悟