`
weick
  • 浏览: 70323 次
  • 性别: Icon_minigender_1
  • 来自: 天堂的隔壁
社区版块
存档分类
最新评论

通过配置的方式实现spring的quartz定时任务

 
阅读更多

 通过配置的方式实现spring的quartz定时任务。

 

方式一,jobDetail的bean利用MethodInvokingJobDetailFactoryBean 工厂包装 :

(1)定义一个bean,执行具体的业务操作。
<bean id="updatePersonService" class="com.corop.packname.UpdatePersonService"/>

(2)定义一个jobDetail,执行业务操作的作业。
<bean id="updatePersonJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 作业要执行的业务操作 bean -->
                <property name="targetObject">
                        <ref bean="updatePersonService" />
                </property>

<!-- 业务操作bean里面具体执行业务操作的方法-->
                <property name="targetMethod">
                        <value>updatePerson</value>
                </property>
                <!-- 作业不并发执行 -->
                <property name="concurrent">
                        <value>false</value>
                </property>
</bean>

(3)定义一个触发器,根据时间表达式定时触发执行作业
<bean id="updatePersonTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 要触发执行的作业 bean -->
                <property name="jobDetail">
                        <ref bean="updatePersonJob" />
                </property>

<!-- 触发作业的时间表达式 -->
                <property name="cronExpression">
                        <!--"0 59 23 * * ?" 每天晚上23点59触发-->
                        <value>0 57 00 * * ?</value>
                </property>
  </bean>

(4)定义一个任务调度器
<!--lazy-init=false 容器启动时启动调度器,默认值, singleton='true'这个bean是单独存在的-->
<bean id="startQuertz" lazy-init="false" singleton='true' autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
              <!--触发器列表-->
                <list>
                    <ref local="updatePersonTrigger"/>
                </list>
            </property>
             <!--自动启动调度器器-->
            <property name="autoStartup">  
                    <value>true</value>  
            </property>  

</bean>

方式二,jobDetail采用继承QuartzJobBean的方式:

(1)定义的业务操作bean继承QuartzJobBean,重载方法 executeInternal(JobExecutionContext jobexecutioncontext) ,执行具体的业务操作。
 class UpdatePersonService extends QuartzJobBean{
        private Person person;
        public void setPerson(Person person){
                this.person = person;
        }

        @Override
         public void executeInternal(JobExecutionContext ctx){   
                throws JobExecutionException
                //执行具体的业务操作
                String param1 = ctx.getJobDetail().getJobDataMap().getString("param1");
        }

}
(2)定义jobDetail的bean :
<bean id = 'updatePersonJob' class= 'org.springframework.scheduling.quartz.JobDetailBean'>
         <!--定义业务操作类-->
        <property name="jobClass" value = 'com.corop.packname.UpdatePersonService' />
        <!--定义执行业务操作需要的参数 -->
        <property name="jobDataAsMap">  
                <map>  
                      <entry key="timeout" value="0" /> 
                       <!-- 此参数是一个bean -->
                      <entry key="person" value-ref = 'personBean' />
                      <!--可以从作业执行容器获取此参数-->
                      <entry key="param1" value="com.custom.package.ClassName"/>   
                </map>  
        </property> 
</bean>
<bean id = 'personBean' class= 'com.corop.packname.Person'/>

(3)定义触发器,及(4)定义核心调度器 与 方式一同。

 

 

 

 

分享到:
评论

相关推荐

    spring quartz定时任务demo

    本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,Quartz是一个开源的作业调度框架,支持复杂的调度策略,可以创建、调度和执行重复或一次性...

    springboot整合quartz定时任务yml文件配置方式

    至此,我们已经成功地在Spring Boot应用中整合了Quartz定时任务,通过YAML配置文件完成了基本的设置。同时,借助Spring Cloud Alibaba的Nacos和Dubbo,实现了服务发现和注册,为分布式环境下的任务调度打下了基础。...

    spring整合java quartz实现动态定时任务的前台网页配置与管理

    可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间、频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合实现动态的改变定时任务的状态的一个...

    spring3配置quartz定时任务

    总结,通过以上步骤,我们就成功地在Spring 3中配置了Quartz定时任务,实现了每10秒执行一次的任务。在实际应用中,你可以根据需求定义更复杂的作业和触发器,以及使用Quartz的其他高级特性,如集群支持、持久化作业...

    spring quartz通过xml配置实现定时任务demo

    通过上述步骤,你就成功地在Spring中使用XML配置实现了Quartz定时任务。这种方式使得任务的定义、触发策略和调度管理都集中在一个配置文件中,方便管理和扩展。在实际开发中,可以根据需求调整CRON表达式,或者添加...

    Spring Quartz定时任务 jar包

    Spring Quartz定时任务jar包是Java开发中用于实现定时任务调度的一种解决方案。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行作业,而Spring框架则为Quartz提供了良好的整合,使得在Spring应用中配置...

    完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

    在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...

    spring之定时任务实现(spring-task和quartz等不同方式)

    在IT领域,尤其是在Java开发中,定时任务是一个非常常见的需求,用于执行周期性的任务,比如数据备份、报表生成、...结合提供的文档和源码工程,读者可以深入理解并实践这两种定时任务的实现方式,提升自己的技能水平。

    spring整合quartz定时任务调度

    Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    Spring框架结合Quartz库,提供了一种强大而灵活的方式来管理这些定时任务。本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 ...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...

    Spring quartz 定时任务调度

    Spring 提供了对Quartz的全面支持,可以通过Spring的JobDetail和Trigger接口来配置和管理定时任务。通过在Spring的配置文件中定义bean,可以轻松地将Quartz任务纳入Spring的管理范围。 3. **中文注解** 在项目中...

    Springboot整合Quartz实现定时任务数据库动态配置

    本篇文章将详细探讨如何在Spring Boot项目中整合Quartz,并通过MySQL数据库实现定时任务的动态配置。 首先,我们需要在项目中添加依赖。在Spring Boot的`pom.xml`文件中,引入Spring Boot的`spring-boot-starter-...

    spring-quartz定时任务小实例

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用中定义和执行定时任务。本实例将探讨如何在Spring框架中集成Quartz,创建并运行一个简单的定时任务。以下是你需要知道的关键知识点: 1. **Quartz...

    spring+quartz动态定时任务创建 +mybatis

    当结合Quartz,一个强大的任务调度库,我们可以实现动态的定时任务创建,这在业务逻辑中有着广泛的应用,如数据同步、定时报表生成等。 **Spring框架** Spring框架是Java开发者必备的工具之一。它提供了一个统一的...

    Spring 框架自带定时任务和Quartz定时任务

    目前,主要有两种方式可以实现定时任务:一种是Java自带的定时任务实现,另一种是通过第三方框架实现。在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 ...

    spring中quartz定时任务实例及配置说明

    总结起来,Spring中的Quartz定时任务配置涉及到创建Job Bean、定义Job Detail Bean来指定执行方法,以及设置Cron Trigger Bean来控制执行时机。同时,还需要配置Quartz的属性文件来满足特定的应用需求。正确理解和...

    spring多个定时任务quartz配置

    通过以上步骤,你可以在Spring中成功配置并运行多个Quartz定时任务。记得在你的应用启动时启动Scheduler,以便Quartz能够按照预定的时间表执行任务。同时,你可以通过调整JobDetail和Trigger的属性,灵活地控制任务...

    转:spring多个定时任务quartz配置

    通过以上步骤,你可以在Spring应用中配置和运行多个Quartz定时任务。`quartz.properties`文件是Quartz的核心配置,它决定了调度器的行为和存储方式。而Spring的配置则负责任务的实例化、触发规则以及与Quartz的集成...

Global site tag (gtag.js) - Google Analytics