Quartz是一个Java的定时任务框架,使用它可以方便地实现计划任务,即在某个时间或是每隔一定时间运行一个任务。Quartz的核心是Job/JobDetail,Trigger和Scheduler。Job/JobDetail即要执行的任务,可以通过实现Job中的execute方法来指定任务的具体操作。Trigger用于控制一组Job的触发,包括SimpleTrigger和CronTrigger,后者支持一种描述触发时间和间隔的表达式语言。Scheduler则是控制和管理触发器的启动和终止。
Spring的scheduling.quartz包中对Quartz框架进行了封装,使得开发时不用写任何Quartz和Spring的代码就可以实现定时任务。Spring通过JobDetailBean,MethodInvokingJobDetailFactoryBean实现Job的定义。后者更加实用,只需指定要运行的类,和该类中要运行的方法即可,Spring将自动生成符合Quartz要求的JobDetail。
<bean id="scheduledUploadJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="storageService" />
<property name="targetMethod" value="batchUpload" />
</bean>
Quartz的两种Trigger也被封装成Spring的SimpleTruggerBean和CronTriggerBean。只需进行简单的配置即可:
<bean id="uploadJobTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="scheduledUploadJob" />
<property name="startDelay" value="10000" />
<!-- Run every 5 minute -->
<property name="repeatInterval" value="300000" />
</bean>
最后定义Scheduler:
<bean id="schedulerFactory"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="uploadJobTrigger" />
</list>
</property>
<property name="autoStartup" value="false"/>
</bean>
要注意的是上面例子里,我在测试时用ApplicationContext#getBean取出的schedulerFactory并不是SchedulerFactoryBean,而是org.quartz.Scheduler的一个默认实现。
分享到:
相关推荐
spring+springMVC+mybatis+quartz动态定时任务
Spring + quartz 定时任务修改定时时间不重启服务
11-Spring+Quartz定时任务最简集群版1
在spring+hibernate的框架中定时操作数据库,主要是拿到sessionFactory,不会出现no session 和transaction no-bound等问题,由sessionFactory完成对数据的操作,有些包是没有用的,有兴趣的可以自己删除掉
Quartz学习文档 Spring + Quartz配置详细实例 jar包 Quartz时间格式设置
利用quartz动态操作定时任务,所有配置信息扔到数据库合理管理,同时把运行日志自动添加数据库表中。
Spring2.5+Quartz定时任务简单例子web工程 myeclipse 项目开发的,可直接导入运行
Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查,部署到tomcat即可看到定时任务执行效果。本人亲测,可用!
spring+quartz的定时任务,希望能帮到大家!
上一次传错了资源了,这个是正确的,包含quartz动态定时任务的
commons-collections-3.2.2.jar commons-logging-1.2.jar jta-1.1.jar log4j-1.2.14.jar org.springframework....quartz-all-1.8.6.jar slf4j-api-1.5.8.jar slf4j-log4j12.jar 和spring的一些jar包 不一一列出了
集群下应用server定时任务执行研究,一方面是spring+quartz集群支持,另一方面是统一调度server 通过IHS方式解决,保证同一时间只有一台应用server执行定时任务
支持多任务
基于Spring的Quartz动态定时任务增删改查,代码简洁。后端采用SpringMvc+Spring+Mybatis+Quartz,前端采用Bootstrap框架,数据库采用MySQL;完成定时任务动态任务初始化,增删改查
NULL 博文链接:https://pokerwen.iteye.com/blog/399784
Spring+Quartz实现定时任务的配置方法.rar
实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动管理协调每个节点的定时任务的...
spring+quartz实现动态设置定时任务,自己的例子+心得+sql语句
Spring4.3.15 + Quartz2.2 + Spring MVC管理可以管理任务的暂停,启动、立即执行一次、根据表达式重新调度等功能
spring整合quartz定时任务调度..........