Quartz1.8.5例子(十四)
org.quartz.scheduler.instanceName: PriorityExampleScheduler # Set thread count to 1 to force Triggers scheduled for the same time to
# to be ordered by priority.
org.quartz.threadPool.threadCount: 1
org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
/*
* Copyright 2006-2009 Terracotta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
*/
package org.quartz.examples.example14; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; /**
* This is just a simple job that echos the name of the Trigger
* that fired it.
*/
public class TriggerEchoJob implements Job { private static final Logger LOG = LoggerFactory.getLogger(TriggerEchoJob.class); /**
* Empty constructor for job initilization
*
* <p>
* Quartz requires a public empty constructor so that the
* scheduler can instantiate the class whenever it needs.
* </p>
*/
public TriggerEchoJob() {
} /**
* <p>
* Called by the <code>{@link org.quartz.Scheduler}</code> when a
* <code>{@link org.quartz.Trigger}</code> fires that is associated with
* the <code>Job</code>.
* </p>
*
* @throws JobExecutionException
* if there is an exception while executing the job.
*/
public void execute(JobExecutionContext context)
throws JobExecutionException {
LOG.info("TRIGGER: " + context.getTrigger().getName());
} }
/*
* Copyright 2006-2009 Terracotta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
*/
package org.quartz.examples.example14; import java.util.Calendar; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory; /**
* This Example will demonstrate how Triggers are ordered by priority.
*/
public class PriorityExample { public void run() throws Exception {
Logger log = LoggerFactory.getLogger(PriorityExample.class); log.info("------- Initializing ----------------------"); // First we must get a reference to a scheduler
SchedulerFactory sf = new StdSchedulerFactory(
"org/quartz/examples/example14/quartz_priority.properties");
Scheduler sched = sf.getScheduler(); log.info("------- Initialization Complete -----------"); log.info("------- Scheduling Jobs -------------------"); JobDetail job = new JobDetail("TriggerEchoJob", null, TriggerEchoJob.class); // All three triggers will fire their first time at the same time,
// ordered by their priority, and then repeat once, firing in a
// staggered order that therefore ignores priority.
//
// We should see the following firing order:
// 1. Priority10Trigger15SecondRepeat
// 2. Priority5Trigger10SecondRepeat
// 3. PriorityNeg5Trigger5SecondRepeat
// 4. PriorityNeg5Trigger5SecondRepeat
// 5. Priority5Trigger10SecondRepeat
// 6. Priority10Trigger15SecondRepeat // Calculate the start time of all triggers as 5 seconds from now
Calendar startTime = Calendar.getInstance();
startTime.add(Calendar.SECOND, 5); // First trigger has priority of 1, and will repeat after 5 seconds
SimpleTrigger trigger1 =
new SimpleTrigger("PriorityNeg5Trigger5SecondRepeat", null, startTime.getTime(), null, 1, 5L * 1000L);
trigger1.setPriority(1);
trigger1.setJobName("TriggerEchoJob"); // Second trigger has default priority of 5, and will repeat after 10 seconds
SimpleTrigger trigger2 =
new SimpleTrigger("Priority5Trigger10SecondRepeat", null, startTime.getTime(), null, 1, 10L * 1000L);
trigger2.setJobName("TriggerEchoJob"); // Third trigger has priority 10, and will repeat after 15 seconds
SimpleTrigger trigger3 =
new SimpleTrigger("Priority10Trigger15SecondRepeat", null, startTime.getTime(), null, 1, 15L * 1000L);
trigger3.setPriority(10);
trigger3.setJobName("TriggerEchoJob"); // Tell quartz to schedule the job using our trigger
sched.scheduleJob(job, trigger1);
sched.scheduleJob(trigger2);
sched.scheduleJob(trigger3); // Start up the scheduler (nothing can actually run until the
// scheduler has been started)
sched.start();
log.info("------- Started Scheduler -----------------"); // wait long enough so that the scheduler as an opportunity to
// fire the triggers
log.info("------- Waiting 30 seconds... -------------");
try {
Thread.sleep(30L * 1000L);
// executing...
} catch (Exception e) {
} // shut down the scheduler
log.info("------- Shutting Down ---------------------");
sched.shutdown(true);
log.info("------- Shutdown Complete -----------------");
} public static void main(String[] args) throws Exception {
PriorityExample example = new PriorityExample();
example.run();
}
}
[INFO] 02 二月 04:57:35.735 下午 main [org.quartz.examples.example14.PriorityExample]
------- Initializing ---------------------- [INFO] 02 二月 04:57:35.768 下午 main [org.quartz.core.SchedulerSignalerImpl]
Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl [INFO] 02 二月 04:57:35.769 下午 main [org.quartz.core.QuartzScheduler]
Quartz Scheduler v.1.8.5 created. [INFO] 02 二月 04:57:35.770 下午 main [org.quartz.simpl.RAMJobStore]
RAMJobStore initialized. [INFO] 02 二月 04:57:35.771 下午 main [org.quartz.core.QuartzScheduler]
Scheduler meta-data: Quartz Scheduler (v1.8.5) 'PriorityExampleScheduler' with instanceId 'NON_CLUSTERED'
Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
NOT STARTED.
Currently in standby mode.
Number of jobs executed: 0
Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1 threads.
Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. [INFO] 02 二月 04:57:35.771 下午 main [org.quartz.impl.StdSchedulerFactory]
Quartz scheduler 'PriorityExampleScheduler' initialized from the specified file : 'org/quartz/examples/example14/quartz_priority.properties' from the class resource path. [INFO] 02 二月 04:57:35.771 下午 main [org.quartz.impl.StdSchedulerFactory]
Quartz scheduler version: 1.8.5 [INFO] 02 二月 04:57:35.771 下午 main [org.quartz.examples.example14.PriorityExample]
------- Initialization Complete ----------- [INFO] 02 二月 04:57:35.771 下午 main [org.quartz.examples.example14.PriorityExample]
------- Scheduling Jobs ------------------- [INFO] 02 二月 04:57:35.774 下午 main [org.quartz.core.QuartzScheduler]
Scheduler PriorityExampleScheduler_$_NON_CLUSTERED started. [INFO] 02 二月 04:57:35.774 下午 main [org.quartz.examples.example14.PriorityExample]
------- Started Scheduler ----------------- [INFO] 02 二月 04:57:35.774 下午 main [org.quartz.examples.example14.PriorityExample]
------- Waiting 30 seconds... ------------- [DEBUG] 02 二月 04:57:36.773 下午 Timer-0 [org.quartz.utils.UpdateChecker]
Checking for available updated version of Quartz... [DEBUG] 02 二月 04:57:39.846 下午 Timer-0 [org.quartz.utils.UpdateChecker]
Quartz version update check failed: java.net.SocketTimeoutException: connect timed out [DEBUG] 02 二月 04:57:40.784 下午 PriorityExampleScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
Producing instance of Job 'DEFAULT.TriggerEchoJob', class=org.quartz.examples.example14.TriggerEchoJob [DEBUG] 02 二月 04:57:40.802 下午 PriorityExampleScheduler_Worker-1 [org.quartz.core.JobRunShell]
Calling execute on job DEFAULT.TriggerEchoJob [INFO] 02 二月 04:57:40.802 下午 PriorityExampleScheduler_Worker-1 [org.quartz.examples.example14.TriggerEchoJob]
TRIGGER: Priority10Trigger15SecondRepeat [DEBUG] 02 二月 04:57:40.802 下午 PriorityExampleScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
Producing instance of Job 'DEFAULT.TriggerEchoJob', class=org.quartz.examples.example14.TriggerEchoJob [DEBUG] 02 二月 04:57:40.803 下午 PriorityExampleScheduler_Worker-1 [org.quartz.core.JobRunShell]
Calling execute on job DEFAULT.TriggerEchoJob [INFO] 02 二月 04:57:40.803 下午 PriorityExampleScheduler_Worker-1 [org.quartz.examples.example14.TriggerEchoJob]
TRIGGER: Priority5Trigger10SecondRepeat [DEBUG] 02 二月 04:57:40.803 下午 PriorityExampleScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
Producing instance of Job 'DEFAULT.TriggerEchoJob', class=org.quartz.examples.example14.TriggerEchoJob [DEBUG] 02 二月 04:57:40.803 下午 PriorityExampleScheduler_Worker-1 [org.quartz.core.JobRunShell]
Calling execute on job DEFAULT.TriggerEchoJob [INFO] 02 二月 04:57:40.804 下午 PriorityExampleScheduler_Worker-1 [org.quartz.examples.example14.TriggerEchoJob]
TRIGGER: PriorityNeg5Trigger5SecondRepeat [DEBUG] 02 二月 04:57:45.777 下午 PriorityExampleScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
Producing instance of Job 'DEFAULT.TriggerEchoJob', class=org.quartz.examples.example14.TriggerEchoJob [DEBUG] 02 二月 04:57:45.778 下午 PriorityExampleScheduler_Worker-1 [org.quartz.core.JobRunShell]
Calling execute on job DEFAULT.TriggerEchoJob [INFO] 02 二月 04:57:45.778 下午 PriorityExampleScheduler_Worker-1 [org.quartz.examples.example14.TriggerEchoJob]
TRIGGER: PriorityNeg5Trigger5SecondRepeat [DEBUG] 02 二月 04:57:50.783 下午 PriorityExampleScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
Producing instance of Job 'DEFAULT.TriggerEchoJob', class=org.quartz.examples.example14.TriggerEchoJob [DEBUG] 02 二月 04:57:50.784 下午 PriorityExampleScheduler_Worker-1 [org.quartz.core.JobRunShell]
Calling execute on job DEFAULT.TriggerEchoJob [INFO] 02 二月 04:57:50.785 下午 PriorityExampleScheduler_Worker-1 [org.quartz.examples.example14.TriggerEchoJob]
TRIGGER: Priority5Trigger10SecondRepeat [DEBUG] 02 二月 04:57:55.776 下午 PriorityExampleScheduler_QuartzSchedulerThread [org.quartz.simpl.SimpleJobFactory]
Producing instance of Job 'DEFAULT.TriggerEchoJob', class=org.quartz.examples.example14.TriggerEchoJob [DEBUG] 02 二月 04:57:55.777 下午 PriorityExampleScheduler_Worker-1 [org.quartz.core.JobRunShell]
Calling execute on job DEFAULT.TriggerEchoJob [INFO] 02 二月 04:57:55.777 下午 PriorityExampleScheduler_Worker-1 [org.quartz.examples.example14.TriggerEchoJob]
TRIGGER: Priority10Trigger15SecondRepeat [INFO] 02 二月 04:58:05.775 下午 main [org.quartz.examples.example14.PriorityExample]
------- Shutting Down --------------------- [INFO] 02 二月 04:58:05.775 下午 main [org.quartz.core.QuartzScheduler]
Scheduler PriorityExampleScheduler_$_NON_CLUSTERED shutting down. [INFO] 02 二月 04:58:05.775 下午 main [org.quartz.core.QuartzScheduler]
Scheduler PriorityExampleScheduler_$_NON_CLUSTERED paused. [DEBUG] 02 二月 04:58:05.776 下午 main [org.quartz.simpl.SimpleThreadPool]
shutdown complete [INFO] 02 二月 04:58:05.776 下午 main [org.quartz.core.QuartzScheduler]
Scheduler PriorityExampleScheduler_$_NON_CLUSTERED shutdown complete. [INFO] 02 二月 04:58:05.776 下午 main [org.quartz.examples.example14.PriorityExample]
------- Shutdown Complete ----------------- [DEBUG] 02 二月 04:58:05.885 下午 PriorityExampleScheduler_Worker-1 [org.quartz.simpl.SimpleThreadPool]
WorkerThread is shut down.
Quartz1.8.5例子(十四)的更多相关文章
- scrapy-splash抓取动态数据例子十四
一.介绍 本例子用scrapy-splash爬取超级TV网站的资讯信息,输入给定关键字抓取微信资讯信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4. ...
- Quartz1.8.5例子(十)
/* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...
- Quartz1.8.5例子(四)
/* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...
- 我的MYSQL学习心得(十四) 备份和恢复
我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...
- 雅虎(yahoo)前端优化十四条军规
第一条.尽可能的减少 HTTP 的请求数 (Make Fewer HTTP Requests ) http请求是要开销的,想办法减少请求数自然可以提高网页速度.常用的方法,合并css,js(将一个页面 ...
- 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)
解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...
- Linux Shell系列教程之(十四) Shell Select教程
本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...
- 《sed的流艺术之四》-linux命令五分钟系列之二十四
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- perl 第十四章 Perl5的包和模块
第十四章 Perl5的包和模块 by flamephoenix 一.require函数 1.require函数和子程序库 2.用require指定Perl版本二.包 1.包的定义 2.在包间切 ...
随机推荐
- FastJSON应用前测试--转载
FastJSON 应用前测试 FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能. ...
- 一个App带你学会Retrofit2.0,麻麻再也不用担心我的网络请求了!
Retrofit.Retrofit.Retrofit,越来越多的人在玩这个网络请求框架,这个由squareup公司开源的网络请求框架确实挺好用,今天我们就来看一下这个东东怎么玩! Retrofit作为 ...
- css3绘制中国结
<!doctype html> <html> <head> <title></title> <meta charset='utf-8' ...
- xml_02
1.xml 2.对于XML文档的约束 |-DTD <!DOCTYPE 根元素 [ <!ELEMENT 元素名 (xx)> <!ATTLIS ...
- 初次使用nodejs的问题
使用npm install -g 'xxx' 之后仍然报 Cannot find module 'xxx' 错误,可以通过设置环境变量来解决: export NODE_PATH=/usr/local/ ...
- ASP.NET问题处理---“数据请求超时错误“”
数据请求超时,一般有2中解决方式: 1.页面AJAX处理数据时延长时间: 2.后台数据库连接取数据时延长时间. 由于我的后台数据库连接取数据为循环读取数据,所以不存在超时问题,这里具体说说如何修改AJ ...
- EasyUI中combotree允许多选的时候onSelect事件会重复触发onCheck事件
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgEAAADkCAIAAACOkmAuAAAgAElEQVR4nO2dW2wc15nnO0EQBJsdzA
- 摘录android工具类
import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...
- javascript面向对象程序设计系列(一)---创建对象
javascript是一种基于对象的语言,但它没有类的概念,所以又和实际面向对象的语言有区别,面向对象是javascript中的难点之一.现在就我所理解的总结一下,便于以后复习: 一.创建对象 1.创 ...
- 将表单数据转化为json数据
/** * 将Form表单转成符合后台要求的json格式数据 * @param frm form表单Id * * @return json格式的数据 */function getFormJson(fr ...