`
solon.jar
  • 浏览: 44759 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Spring中动态设置Quartz的cronExpression

阅读更多

 

    什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定)。
    这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文件,但总需要重新启动web服务啊,研究了下Quartz在Spring中的动态定时,发现
   
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" > 
    <property name="jobDetail" ref="schedulerJobDetail"/> 
    <property name="cronExpression"> 
        <value>0/10 * * * * ?</value> 
    </property> 
</bean>
 

中,cronExpression是关键,如果可以动态设置cronExpression的值,也就说如果我们可以直接调用CronTriggerBean中设置cronExpression的方法,就可以顺利解决问题了。
熟悉1的朋友可以跳过不看,下面2、3是动态定时任务的具体实现。

1. Quartz在Spring中的简单配置
Spring配置文件:
<bean id="schedulerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="scheduleInfoAction"/>
        <property name="targetMethod" value="simpleJobTest"/>
        <property name="concurrent" value="false"/>
    </bean>
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" >
         <property name="jobDetail" ref="schedulerJobDetail"/>
         <property name="cronExpression">
             <value>0/10 * * * * ?</value>
         </property>
     </bean>
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref local="cronTrigger"/>
            </list>
        </property>
</bean>
 
在上面的配置中设定了
targetMethod: 指定需要定时执行scheduleInfoAction中的simpleJobTest()方法
② concurrent:对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job完成之前,第二个job就开始了。指定concurrent设为false,多个job不会并发运行,第二个job将不会在第一个job完成之前开始。
cronExpression0/10 * * * * ?表示每10秒执行一次,具体可参考附表
④ triggers:通过再添加其他的ref元素可在list中放置多个触发器。
 
scheduleInfoAction中的simpleJobTest()方法
注意:此方法没有参数,如果scheduleInfoAction有两个方法simpleJobTest()和simpleJobTest(String argument),则spring只会去执行无参的

分享到:
评论

相关推荐

    Quartz在Spring中动态设置cronExpression

    Quartz在Spring中动态设置cronExpression

    Quartz在Spring中动态设置cronExpression.docx

    Quartz在Spring中动态设置cronExpression.docx 相当不错的资料 小而全面

    Spring Quartz 动态设置cronExpression

    NULL 博文链接:https://ait.iteye.com/blog/1981617

    Spring Quartz如何动态配置时间

    在本文中,我们将讨论如何使用 Spring Quartz 实现动态配置时间,并提供了详细的实现步骤和实践经验。 动态配置时间的目的 在实际应用中,任务的执行时间往往需要根据业务需求进行动态调整,以满足不同的需求场景...

    Spring线程时间配置:Quartz和CronExpression

    Spring自带了多线程设置:quartz,在quartz的设置中,时间字段CronExpression的设置比较纠结,一个Cron表达式是一个由六至七个字段组成由空格分隔的字符串,其中6个字段是必须的而一个是可选的,文档详细讲解了这个...

    Spring--quartz中cronExpression配置说明

    cronExpression ,的关于时间的配置

    Spring中Quartz任务调度器cronexpression配置说明

    Spring中Quartz任务调度器cronexpression配置说明

    关于spring中quartz的配置

    在Spring框架中集成Quartz是一款常见的任务调度解决方案,它允许开发者在应用中安排定时任务的执行。Quartz是一个开源的作业调度框架,可以用来在Java应用程序中安排复杂的作业任务。以下将详细介绍如何在Spring中...

    基于spring+mybatis的quartz应用

    3. **配置Quartz**:在Spring配置文件中定义SchedulerFactoryBean,设置相关的属性,如JobStore类型(对应数据库存储Job信息的方式),以及数据源等。例如: ```xml &lt;bean id="schedulerFactoryBean" class="org....

    spring定时任务之Quartz

    在quartz.properties文件中,配置Quartz的数据库连接信息和其他设置: ``` org.quartz.scheduler.instanceName = DefaultScheduler org.quartz.threadPool.threadCount = 5 # JDBC job store settings org.quartz....

    spring3配置quartz定时任务

    2. **创建作业bean**:在Spring配置文件中声明这个作业bean,并设置其类为`MyJob`: ```xml ``` 3. **定义触发器**:触发器控制作业何时执行。Quartz提供了多种类型的触发器,如SimpleTrigger、CronTrigger等。...

    Spring整合任务调度框架Quartz

    在 Java 领域中,Quartz 是一个非常流行的任务调度框架,而 Spring 是一个非常流行的 Java 框架。在本文中,我们将详细介绍如何将 Spring 整合任务调度框架 Quartz,从而实现任务调度的自动化。 一、使用配置文件...

    Quartz动态修改时间,java实现修改CronExpression方法

    首先,CronExpression是Quartz中用于定义时间触发规则的关键组件,它基于Unix的crontab语法,可以精确到秒来设置任务的执行频率。例如,"0 0/5 * * * ?"表示每5分钟执行一次。要动态修改CronExpression,我们需要对...

    spring整合quartz使用jdbc存储

    Spring整合Quartz是一款高效的任务调度框架,用于在Java应用程序中定时执行特定任务。Quartz本身支持多种持久化策略,包括使用数据库(JDBC)来存储作业和触发器信息,这使得任务调度信息在系统重启后仍能保留。下面...

    spring3.1 与 quartz 1.8.6 整合 所有jar

    在Java企业级应用开发中,Spring框架和Quartz是两个非常重要的组件。Spring是一个全面的、模块化的应用程序框架,提供了依赖注入(DI)、面向切面编程(AOP)以及丰富的数据访问和事务管理功能。而Quartz则是一个...

    Spring中Quartz调度器的使用 示例代码

    在Spring框架中集成Quartz调度器,可以实现定时任务的高效管理。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行任务。在本示例中,我们将探讨如何在Spring应用中配置和使用Quartz,以及通过示例代码来...

Global site tag (gtag.js) - Google Analytics