- 浏览: 99533 次
- 性别:
- 来自: 上海
最新评论
-
kingtay:
...
查看class文件的字节码版本号 -
kkfbai:
补充说明一下:如果只想判断两个LIST是否有交集,可以使用Co ...
java 两list求交集
[转]Quartz实例
关键字: Quartz,实例
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1232849
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。
实例:
package example.quartz;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import java.util.Date;
/** */ /**
* @author starsiday
*/
/**/ /* 实现Job */
public class QuartzReport implements Job {
/**/ /* 重载该函数 */
public void execute(JobExecutionContext cntxt) throws JobExecutionException {
System.out.println( " Generating report - "
+ cntxt.getJobDetail().getJobDataMap().get( " type " )
+ new Date());
}
public static void main(String[] args) {
try {
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
JobDetail jobDetail = new JobDetail( " Income Report " ,
" Report Generation " , QuartzReport. class );
jobDetail.getJobDataMap().put( " type " , " FULL " );
CronTrigger trigger = new CronTrigger( " Income Report " ,
" Report Generation " );
/**/ /* 每1分钟执行一次 */
trigger.setCronExpression( " 0 0/1 * * * ? " );
sched.scheduleJob(jobDetail, trigger);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Quartz的配置文件:quartz.properties
# Configure Main Scheduler Properties
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
# Configure ThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4
# Configure JobStore
org.quartz.jobStore.misfireThreshold = 5000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
附:cronExpression配置说明
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式 意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
特殊字符 意义
* 表示所有值;
? 表示未说明的值,即不关心它为何值;
- 表示一个指定的范围;
, 表示附加一个可能值;
/ 符号前表示开始时间,符号后表示每次递增的值;
L("last") ("last") "L" 用在day-of-month字段意思是 "这个月最后一天";用在 day-of-week字段, 它简单意思是 "7" or "SAT"。 如果在day-of-week字段里和数字联合使用,它的意思就是 "这个月的最后一个星期几" – 例如: "6L" means "这个月的最后一个星期五". 当我们用“L”时,不指明一个列表值或者范围是很重要的,不然的话,我们会得到一些意想不到的结果。
W("weekday") 只能用在day-of-month字段。用来描叙最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近这个月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第16 天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。“W”字符仅能在day- of-month指明一天,不能是一个范围或列表。也可以用“LW”来指定这个月的最后一个工作日。
# 只能用在day-of-week字段。用来指定这个月的第几个周几。例:在day-of-week字段用"6#3"指这个月第3个周五(6指周五,3指第3个)。如果指定的日期不存在,触发器就不会触发。
C 指和calendar联系后计算过的值。例:在day-of-month 字段用“5C”指在这个月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在这周日或之后包括calendar的第一天。
在MONTH和Day Of Week字段里对字母大小写不敏感。
关键字: Quartz,实例
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1232849
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。
实例:
package example.quartz;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import java.util.Date;
/** */ /**
* @author starsiday
*/
/**/ /* 实现Job */
public class QuartzReport implements Job {
/**/ /* 重载该函数 */
public void execute(JobExecutionContext cntxt) throws JobExecutionException {
System.out.println( " Generating report - "
+ cntxt.getJobDetail().getJobDataMap().get( " type " )
+ new Date());
}
public static void main(String[] args) {
try {
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
JobDetail jobDetail = new JobDetail( " Income Report " ,
" Report Generation " , QuartzReport. class );
jobDetail.getJobDataMap().put( " type " , " FULL " );
CronTrigger trigger = new CronTrigger( " Income Report " ,
" Report Generation " );
/**/ /* 每1分钟执行一次 */
trigger.setCronExpression( " 0 0/1 * * * ? " );
sched.scheduleJob(jobDetail, trigger);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Quartz的配置文件:quartz.properties
# Configure Main Scheduler Properties
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
# Configure ThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4
# Configure JobStore
org.quartz.jobStore.misfireThreshold = 5000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
附:cronExpression配置说明
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式 意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
特殊字符 意义
* 表示所有值;
? 表示未说明的值,即不关心它为何值;
- 表示一个指定的范围;
, 表示附加一个可能值;
/ 符号前表示开始时间,符号后表示每次递增的值;
L("last") ("last") "L" 用在day-of-month字段意思是 "这个月最后一天";用在 day-of-week字段, 它简单意思是 "7" or "SAT"。 如果在day-of-week字段里和数字联合使用,它的意思就是 "这个月的最后一个星期几" – 例如: "6L" means "这个月的最后一个星期五". 当我们用“L”时,不指明一个列表值或者范围是很重要的,不然的话,我们会得到一些意想不到的结果。
W("weekday") 只能用在day-of-month字段。用来描叙最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近这个月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第16 天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。“W”字符仅能在day- of-month指明一天,不能是一个范围或列表。也可以用“LW”来指定这个月的最后一个工作日。
# 只能用在day-of-week字段。用来指定这个月的第几个周几。例:在day-of-week字段用"6#3"指这个月第3个周五(6指周五,3指第3个)。如果指定的日期不存在,触发器就不会触发。
C 指和calendar联系后计算过的值。例:在day-of-month 字段用“5C”指在这个月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在这周日或之后包括calendar的第一天。
在MONTH和Day Of Week字段里对字母大小写不敏感。
发表评论
-
IDEA 社区版同一个项目启动多次
2022-09-23 07:58 346打开idea社区版的服务列表,选中要多次启动的项目,右键选 ... -
正则表达示提取匹配内容
2019-10-15 19:14 548public static void main(Strin ... -
java https tomcat 单双认证(含证书生成和代码实现)
2018-01-11 15:14 765https://www.cnblogs.com/sprin ... -
nginx1.0.4 配置
2014-09-17 11:51 673见附件 -
jconsole 远程连接
2014-08-21 14:18 1161linux服务器应用程序的启动配置如下: ####### ... -
判断一个字符中是否有乱码
2014-05-19 11:30 1301package com.test; import ja ... -
SizeOf对象的大小
2013-12-25 17:36 780private static void mobileno() ... -
JVM系列三:JVM参数设置、分析
2014-05-19 11:34 702不管是YGC还是Full GC,GC过程中都会对导致程序运 ... -
Eclipse去除js(JavaScript)错误
2013-08-20 09:46 563最近出了一个很怪的 ... -
webQQ-web版及时通信
2013-06-24 15:42 702webQQ-web版及时通信 带sql脚本 -
输出堆栈日志
2013-06-07 09:08 1028@echo off&setlocal enablede ... -
将JAVA应用程序打包成EXE可执行文件教程.doc
2013-04-15 14:11 888将JAVA应用程序打包成EXE可执行文件教程.doc -
java 获取当前运行服务的操作系统PID
2013-04-11 11:22 1005ManagementFactory.getRuntimeM ... -
LambdaProbe使用简介
2012-09-27 14:59 962LambdaProbe使用简介 LambdaProb ... -
Java编程中“为了性能”尽量要做到的一些地方(转)
2012-03-08 14:21 2279最近的机器内存又爆满了,除了新增机器内存外,还应该好好revi ... -
java基础
2010-05-30 21:07 840String a = new String ... -
把Https网站中的安全证书导入到java的cacerts证书库中
2010-05-28 11:28 4164有两种方式 一. Untitled如何把Https网 ... -
语录收集
2010-05-17 16:35 832设计模式 Abstract Factory:提供一个创建 ... -
循环bean的属性
2010-04-23 17:51 880private Map<String, String&g ... -
remove list
2009-11-20 10:22 859Iterator<AcctChargeConfigDTO ...
相关推荐
基于51单片机,通过ADC0809实现模数转换功能
定时器级联 正反转互锁 状态的编号和功能 计数器散转 定时器流水灯 手动自振荡电路动半自动模拟,基于中断的彩灯控制实验,脉冲宽度测量程序,等等.
windows平台下定时器C++简单封装,了解运行原理,玩转定时器
STM32 ADC由通用定时器3触发转换,并将转换的模拟量通过8个LED灯表示出来
jQuery翻转倒计时,定时器插件,时钟或计数器,flipcountdown 查看演示地址http://www.jq22.com/jquery-info277
1、使用定时器中断每隔一定时间进行ADC转换,这样每次都必须读ADC的数据寄存器,非常浪费时间! 2、把ADC设置成连续转换模式,同时对应的DMA通道开启循环模式,这样ADC就一直在进行数据采集然后通过DMA把数据搬运至...
8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下: 最大值为100,我们只需要38,怎么办呢,由于是...
关于A/D与D/A转换电路的实验以及555集成定时器及应用实验过程.
定时器触发ADC,DMA数据转运
用cube生成一个用定时器触发ADC1,ADC2同步采集的程序,单片机选择的是STM32L476RGT6,用定时器2进行ADC采集触发,更改定时器2的定时周期便可以更改ADC的采样周期,ADC1和ADC2使用同步规则模式,并用DMA进行数据的...
利用TIM3的定时器中断来控制DS1的翻转,在主函数用DS0的翻转来提示程序正在运行。
本文给大家分享了一个采用LM555定时器的转换电路图。
定时器计算 带通滤波器计算 基准电压计算 电线线电阻率计算 PCB-线宽-电阻率计算 高通滤波计算 低通滤波计算 电容-容抗计算 电感-感抗-计算 电池容量测试 电池内阻计算 目前添加这些功能-欢迎评论交流
定时器产生PWM 控制舵机旋转。
本资源是在网上找的现成的基于stm32f103控制旋转编码器(EC11)的程序(采用正交解码的方法),本来只有定时器2345,本人把高级定时器1的配置也加了进去。
在STM32系列的单片机中,ADC采样是由定时器触发的。而在DMA模式下,定时器产生的触发信号可以控制DMA的数据传输。本文将详细介绍ADC采样的DMA方式与定时器的相关知识。 一、DMA数据传输模式 DMA是“直接存储器访问...
基于STM32控制42位步进电机精确转动固定角度。通过定时器计数,控制脉冲
msp430f5529定时器A程序为TimerA 作为定时器使用实现LED 闪烁
MFC定时器的用法,包含中文注释以及简单的用法介绍。VC6直接编译运行,其他VS双击打开自动完成转换。