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.在包间切 ...
随机推荐
- core dump + LINUX 内核系列博客
参考:http://www.cnblogs.com/ahuo/category/72819.html http://blog.csdn.net/tenfyguo/article/details/815 ...
- 通用的 makefile 小工具分享 - Easymake 使用说明
Easymake 使用说明 介绍 Easymake 是一个在linux系统中 C/C++ 开发的通用 makefile.在一个简单的 C/C++ 程序中使用 easymake,你甚至可以不写一行 ma ...
- Redhat YUM U盘源配置
Redhat YUM U盘源配置 1)在U盘创建目录 #mkdir /yum/Server 并从光盘Server.Packages 目录的所有文件拷贝到/yum/Server 2)安装 creater ...
- 虚拟机及ubuntu环境搭建问题
1.现象: VMware中ubuntu ping通 宿主机windows VMware中ubuntu ping通 百度 宿主机windows ping不通 VMware中ubuntu 解决办法: 确保 ...
- using(){},Close(),Dispose()的区别
//用Close(),Dispose()方式关闭连接 string connString = "Data Source=(local);Initial Catalog=Linq;Integr ...
- 开源控件ViewPagerIndicator学习
导航条指示器.ViewPagerIndicator 地址 https://github.com/JakeWharton/ViewPagerIndicator Style是重用控件的一种技术.类似CSS ...
- PAT_1072 Gas Station
1072. Gas Station (30) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- oracle 高版本导出低版本数据库并且导入到低版本数据的方法
第一步:sqlplus system/egis@orcl as sysdba; 进入sqlplus (输入管理员用户名/密码@数据库密码) 第二步: create directory dumpdir ...
- OC - 9.使用Quartz2D绘制下载进度条
效果图 实现思路 要实现绘图,通常需要自定义一个UIView的子类,重写父类的- (void)drawRect:(CGRect)rect方法,在该方法中实现绘图操作 若想显示下载进度,只需要实例化自定 ...
- hpple 简单使用
最近项目使用到hpple,简单说一下使用方式,做做笔记 let responseData = response as! NSData let utf8Html = responseData.strin ...