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.在包间切 ...
随机推荐
- mysqld --debug-sync
http://hedengcheng.com/?p=238https://dev.mysql.com/doc/internals/en/debug-sync-facility.html mysqld ...
- ccmenu里的位置
ccmenu里的位置 ccctableviewcell内的元素不需要设置高度 调整buyitem内的元素的位置,可以通过一个item来调整. ccctableview.ccctableviewcell ...
- java查询手机号码归属地
package com; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe ...
- Java基础知识强化之IO流笔记46:IO流练习之 把文本文件中数据存储到集合中的案例
1. 把文本文件中数据存储到集合中 需求:从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合. 分析: 通过题目的意思我们可以知道如下的一些内容, 数据 ...
- Oracle 流式制造功能培训
转自百度文库: http://wenku.baidu.com/link?url=dRyll_P7C3fepoUp5dggYVzw6lVmifwEJMLvis1CN58m09WYF1unY3Ddn9Lq ...
- sbit命令行中运行scala脚本
一般sbit编译器采成了scala运行工具.启动sbit命令行,输入console,命令行自动切换到scala编辑器面. scala>:paste 然后手动将XXX.scala中的代码拷贝到界面 ...
- Android ImageSwitcher和Gallery的使用
前几天,听说室友的老师要求他们做一个图片效果.其效果如下图所示(可左右滑动切换图片): 我当时晃眼一看,第一感觉好高级的样子.我还没做过这种效果呢,但室友说他们同学已经有人做出来了,我觉得既然有人做出 ...
- 关于ibatis进行物理游标分页
http://www.iteye.com/topic/136712 详细demo:参照http://www.kusoft.net 我的数据库是采用mssql2000 采用分页必定数据量比较大: 按照i ...
- SQL语句一点小心得
在Sqlserver中 if 语句后面的语句加begin end 括起来 问题:执行速度问题,在存储过程中没有加begin end 执行速度很慢,加了begin end执行速度加快 ALTER PRO ...
- ios UIWebview本地加载H5网页
注意两点 1.拖动文件到工程中选择create folder,文件夹为蓝色 --不要让文件参与编译,而只是让文件加入进来 2.加载方式pathforresorth oftype indire ...