网站销售系统,2022网站快速收录技术,中国前十强企业,做网站空间要多大项目中一直使用Quartz做定时任务#xff0c;但是一直没有去仔细阅读详细参数配置说明以及它源码#xff0c;最近花了一点时间做了一个整理。系统的看了一下源码实现并顺手做了一个简单的Demo。 一、说明 spring版本4.0.5、Quartz版本2.2.2 注意定时任务的配置需要spring-cont… 项目中一直使用Quartz做定时任务但是一直没有去仔细阅读详细参数配置说明以及它源码最近花了一点时间做了一个整理。系统的看了一下源码实现并顺手做了一个简单的Demo。 一、说明 spring版本4.0.5、Quartz版本2.2.2 注意定时任务的配置需要spring-context-support-4.0.5.RELEASE.jar进行配置所以项目中要加入此包。还需要log4j的包这里版本用的是log4j-1.2.17.jarslf4j-log4j12-1.6.1.jarslf4j-api-1.6.4.jar当然还有一些依赖包项目中都有这里不再做说明。 二、安装配置 1JOBXML配置 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aop xmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd default-autowirebyName default-lazy-inittruebean idtestJob classquartz.JobTest/bean !-- 定义调用对象和调用对象的方法 --bean idtestTask classorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean!-- 调用的类 --property nametargetObjectref beantestJob//property!-- 调用类中的方法 --property nametargetMethodvaluework/value/property/bean !-- 调度触发器 --bean idjibDoTime classorg.springframework.scheduling.quartz.CronTriggerFactoryBeanproperty namejobDetailref beantestTask//property!-- cron表达式 --property namecronExpressionvalue0 0/1 * * * ?/value/property/bean !-- 调度工厂 如果将lazy-initfalse那么容器启动就会执行调度程序 --bean idstartQuertz lazy-initfalse autowireno classorg.springframework.scheduling.quartz.SchedulerFactoryBeanproperty nametriggerslistref beanjibDoTime//list/property!--必须的设置 QuartzScheduler 延时启动应用启动完后 QuartzScheduler 再启动 --property namestartupDelay value5 //bean!-- 配置任务并发执行线程池 --bean idexecutor classorg.springframework.scheduling.concurrent.ThreadPoolTaskExecutorproperty namecorePoolSize value3 /property namemaxPoolSize value5 /property namequeueCapacity value10 //bean
/beans 2代码实现 package quartz;public class JobTest {public void work(){System.out.println(任务开始执行);}
}3web.xml配置 ?xml version1.0 encodingUTF-8?
web-app idWebApp_ID version2.4 xmlnshttp://java.sun.com/xml/ns/j2ee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsddisplay-nameacts_quartz/display-namecontext-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:applicationContext-job.xml/param-value/context-param!-- 监听器 --listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenerwelcome-file-listwelcome-fileindex.html/welcome-file/welcome-file-list
/web-app关于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触发 每天早上6点 0 6 * * * 每两个小时 0 */2 * * * 晚上11点到早上8点之间每两个小时早上八点 0 23-7/28 * * * 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 1月1日早上4点 0 4 1 1 * 科帮网