Spring_quartz学习文档.docx
文本预览下载声明
Spring--简单使用quartz实现定时作业关键字: spring quartz 定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。 而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。Spring对Quartz大刀阔斧的简化堪称范例,Quartz项目组也许可以学习一下。 bean id=methodInvokingJobDetail class=org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean property name=targetObjectref bean=financeDAO//property property name=targetMethodvalueconfirmOrder/value/property /bean bean id=cronTrigger class=org.springframework.scheduling.quartz.CronTriggerBean property name=jobDetail ref bean=methodInvokingJobDetail/ /property property name=cronExpression value0 0 6,12,20 * * ?/value /property /bean bean class=org.springframework.scheduling.quartz.SchedulerFactoryBean property name=triggers listref local=cronTrigger//list /property /bean 上面这段配置文件规定了在早上6点和晚上8点执行financeDAO对象的confirmOrder()方法. 附:cronExpression配置说明 字段 允许值 允许的特殊字符 秒 ? 0-59 ? , - * / 分 ? 0-59 ? , - * / 小时 ? 0-23 ? , - * / 日期 ? 1-31 ? , - * ? / L W C 月份 ? 1-12 或者 JAN-DEC ? , - * / 星期 ? 1-7 或者 SUN-SAT ? , - * ? / L C # 年(可选) ? 留空, 1970-2099 ? , - * //gbk/articles/216119.htmlQuartz定时任务学习(一)简单任务 学习quartz首先了解三个概念:调度器:负责调度作业和触发器;触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)作业:定时任务内容,被执行的程序;下载必要的jar包,直接去官网下载,将quartz-x.x.x.jar 和core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中Quartz的几个核心的接口和类为:Job接口:自己写的“定时程序”实现此接口的void execute(JobExecutionContext arg0)方法,Job还有一类为有状态的StatefulJob接口,如果我们需要在上一个作业执行完后,根据其执行结果再进行下次作业的执行,则需要实现此接口。Trigger抽象类:调度类(Scheduler)在时间到时调用此类,再由trigger类调用指定的定时程序。Quertz中提供了两类触发器为:SimpleTrigger,CronTrigger。前者用于实现比较简单的定时功能,例如几点开始,几点结束,隔多长时间执行,共执行多少次等,后者提供了使用表达式来描述定时功能,因此适用于比较复杂的定时描述,例如每个月的最后一个周五,每周的周四等。JobDetail类:具体某个定时程序的详细描述,包括Name,Group,JobDataMap等。JobExecutionContext类:定时程序执行的run-time的上下文环境,用于得到当前执行的Job的名字,配置的参数等。JobDataMap类:用于描述一个作业的参数,参数可以为任何基本类型例如String,float等,也可为某个对象的引用.JobListener,TriggerListener接口:用于监听触发器状态和作业扫行状态,在特写状态执行相应操作。JobStore类:在哪里执行定进程序,可选的有在内存中,在数据库中。开始:边看例题边学习,首先从简单触发器开始……1、作业通过实现 org.quartz.job 接口,可以使 Java 类变成可执行的。这个类用一条非
显示全部