quartz定时插件应用与时间配置
2013-12-24 15:07
239 查看
1.quartz定时发送信息功能是依附Web应用上,也就是说Web应用启动时该应用就启动。
提供应用jar包:
quartz.jar1.6:http://ishare.iask.sina.com.cn/f/24028850.html
2.quartz的三个核心概念和它的理论:
调度器(quartzScheduler)、触发器(triggers)、作业(jobDetail)
应用首先是调用调度器,一个调度器对应一个应用和多个触发器,一个触发器对应一个作业。
3.在spring框架中首先在bean.xml的配置文件中引入applicationContext-quartz.xml配置
<import resource="applicationContext-quartz.xml"/>
4.applicationContext-quartz.xml内配置
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTDBEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beansdefault-lazy-init="false">
<bean name="quartzScheduler"class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<propertyname="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
<propertyname="configLocation" value="classpath:quartz.properties"/>
</bean>
<bean id="cronTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean">
<propertyname="jobDetail" ref="jobDetail"/>
朝九晚五工作时间内每半小时执行一次
<propertyname="cronExpression" value="0 0/3 9-17 *,* *?"/>
</bean>
使用pojo做job,指定pojo和method
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<propertyname="targetObject"ref="monitorService"/> <!-- 实际调用类-->
<propertyname="targetMethod"value="longQueueRemove"/> <!--实际调用方法-->
</bean>
5.classpath:quartz.properties
中参数配置
#===========================================================================
# 配置 Main Scheduler Properties
#===========================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction =false
#===========================================================================
# 配置执行线程池
#===========================================================================
org.quartz.threadPool.class =org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread= true
#===========================================================================
# 配置 JobStore
#===========================================================================
org.quartz.jobStore.misfireThreshold = 60000
#内存中JobStore, 服务器重启时执行记录会丢失
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
6.时间Cron表示式示例
表达式 意义
"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触发
提供应用jar包:
quartz.jar1.6:http://ishare.iask.sina.com.cn/f/24028850.html
2.quartz的三个核心概念和它的理论:
调度器(quartzScheduler)、触发器(triggers)、作业(jobDetail)
应用首先是调用调度器,一个调度器对应一个应用和多个触发器,一个触发器对应一个作业。
3.在spring框架中首先在bean.xml的配置文件中引入applicationContext-quartz.xml配置
<import resource="applicationContext-quartz.xml"/>
4.applicationContext-quartz.xml内配置
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTDBEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beansdefault-lazy-init="false">
<bean name="quartzScheduler"class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<propertyname="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
<propertyname="configLocation" value="classpath:quartz.properties"/>
</bean>
<bean id="cronTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean">
<propertyname="jobDetail" ref="jobDetail"/>
朝九晚五工作时间内每半小时执行一次
<propertyname="cronExpression" value="0 0/3 9-17 *,* *?"/>
</bean>
使用pojo做job,指定pojo和method
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<propertyname="targetObject"ref="monitorService"/> <!-- 实际调用类-->
<propertyname="targetMethod"value="longQueueRemove"/> <!--实际调用方法-->
</bean>
5.classpath:quartz.properties
中参数配置
#===========================================================================
# 配置 Main Scheduler Properties
#===========================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction =false
#===========================================================================
# 配置执行线程池
#===========================================================================
org.quartz.threadPool.class =org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread= true
#===========================================================================
# 配置 JobStore
#===========================================================================
org.quartz.jobStore.misfireThreshold = 60000
#内存中JobStore, 服务器重启时执行记录会丢失
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
6.时间Cron表示式示例
表达式 意义
"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触发
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
"0 15 10 * * ? 2008" | 在2008年的每天10:15运行 |
"0 * 14 * * ?" | 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。 |
"0 0/5 14 * * ?" | 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。 |
"0 0/5 14,18 * * ?" | 每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。 |
"0 0-5 14 * * ?" | 每天14:00点到14:05,每分钟运行一次。 |
"0 10,44 14 ? 3 WED" | 3月每周三的14:10分到14: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 2007-2009" | 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。 |
"0 15 10 ? * 6#3" | 每月第三个星期五的10:15分运行。 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
"0 15 10 * * ? 2008" | 在2008年的每天10:15运行 |
"0 * 14 * * ?" | 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。 |
"0 0/5 14 * * ?" | 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。 |
"0 0/5 14,18 * * ?" | 每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。 |
"0 0-5 14 * * ?" | 每天14:00点到14:05,每分钟运行一次。 |
"0 10,44 14 ? 3 WED" | 3月每周三的14:10分到14: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 2007-2009" | 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。 |
"0 15 10 ? * 6#3" | 每月第三个星期五的10:15分运行。 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
"0 15 10 * * ? 2008" | 在2008年的每天10:15运行 |
"0 * 14 * * ?" | 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。 |
"0 0/5 14 * * ?" | 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。 |
"0 0/5 14,18 * * ?" | 每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。 |
"0 0-5 14 * * ?" | 每天14:00点到14:05,每分钟运行一次。 |
"0 10,44 14 ? 3 WED" | 3月每周三的14:10分到14: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 2007-2009" | 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。 |
"0 15 10 ? * 6#3" | 每月第三个星期五的10:15分运行。 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
"0 15 10 * * ? 2008" | 在2008年的每天10:15运行 |
"0 * 14 * * ?" | 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。 |
"0 0/5 14 * * ?" | 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。 |
"0 0/5 14,18 * * ?" | 每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。 |
"0 0-5 14 * * ?" | 每天14:00点到14:05,每分钟运行一次。 |
"0 10,44 14 ? 3 WED" | 3月每周三的14:10分到14: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 2007-2009" | 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。 |
"0 15 10 ? * 6#3" | 每月第三个星期五的10:15分运行。 |
表示式 | 说明 |
"0 0 12 * * ? " | 每天12点运行 |
"0 15 10 ? * *" | 每天10:15运行 |
"0 15 10 * * ?" | 每天10:15运行 |
"0 15 10 * * ? *" | 每天10:15运行 |
"0 15 10 * * ? 2008" | 在2008年的每天10:15运行 |
"0 * 14 * * ?" | 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。 |
"0 0/5 14 * * ?" | 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。 |
"0 0/5 14,18 * * ?" | 每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。 |
"0 0-5 14 * * ?" | 每天14:00点到14:05,每分钟运行一次。 |
"0 10,44 14 ? 3 WED" | 3月每周三的14:10分到14: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 2007-2009" | 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。 |
"0 15 10 ? * 6#3" | 每月第三个星期五的10:15分运行。 |
相关文章推荐
- 动态规划入门之LCS
- 全面解析Java中的String数据类型
- Junit4组合单元测试SuiteClasses的作用
- RadioButton 猜猜看实例
- Java运用jxl包实现数据库表导出Excel实例
- 动态创建 Web 服务器控件模板
- 数据库集群的技术指标
- decimal,double,float等浮点型去除后导0
- 分词学习(1)--正向最大匹配分词
- cocos2dx之CCTMXTiledMap
- 使用PHPMailer发送带附件并支持HTML内容的邮件
- 第五届蓝桥杯—— 基础练习:杨辉三角形
- Trie的实现
- GCC编译优化指南 --金步国
- 软件启动画面其实并不简单
- matlab图形加注功能
- 分页语句的快与慢
- 获取和重设IIS匿名用户的密码
- js 复制内容到粘贴板的兼容性
- 防止ajax非正常访问