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.在包间切 ...
随机推荐
- Hadoop Oozie 学习笔记
Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat. O ...
- iOS 网络编程:AFNetworking
1 简介 1.1 概念 AFNetworking网络框架并不是IOS自带的框架,而是第三方的开源框架.它是对NSURLConnection和NSURLSession API的封装,但是目前AFNetw ...
- 转:Oracle EBS 寄售业务总结
转自:http://blog.vsharing.com/nicr/A1359214.html 总述: 须通过一揽子采购协议(BPA)明确采购方与供应商之间的寄售关系,及各种协议条款: 通过来源补充规则 ...
- Qt Quick 简单教程 - 1 (代码备忘)
qmlscene 未安装 由于出现上面的情况,我开始转战Windows 下学习,昨天安装好了Qt Sdk了,哟吼吼吼. mail.qml内容: import QtQuick 2.3 import Qt ...
- php-fpm 的安装与LNMP测试
1. 下载并安装PHP 1.1 编译安装 1.1.1 安装前的准备 下载并安装libmcrypt 和 libmcrypt-devel[root@test /opt/soft]# wget ftp:// ...
- 学习笔记6_Java_day11_JSP_基础和入门(1、2)
主要内容:1. JSP基础2. Cookie3. HttpSession ================================ JSP基础 1. jsp的作用: * Servlet: &g ...
- c编程:用户输入一个数值n,打印出出1到n之间的所有质数
#include <stdio.h> int func(int i ) { //定义一个变量temp=2,当主函数引入的数大于temp时进入for循环.当它在比自己小的数中找到一个能背整除 ...
- 深度优化LNMP之Nginx (转)
深度优化LNMP之Nginx Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息 一般来说,软件的漏洞都和版本有关,因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息(例 ...
- centos 安装php-fpm , nginx二级域名配置 ,但为什么必须要 域名提供商 哪里解析新的二级域名一下 才能用呢?
yum -y install php-fpm php-mysql(当然还有其它扩展) /etc/init.d/php-fpm restart (重启php-fpm) /etc/php.ini (php ...
- void void*
void类型及void指针 1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并 详述void及void指 ...