`

Spring CronTrigger

阅读更多

quartz的触发器CronTriggerBean 配置 

一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年;其中年不是必须的,也就是说任何一个表达式最少需要六项!

例:0 0 12 ? * WED 表示每个星期三的12点执行,这里没有“年”这项!


字段名(项)  必须  值范围  特殊字符 

秒 是 0-59  , - * /  

分 是 0-59  , - * /  

时 是 0-23  , - * /  

月的某天  是 1-31  , - * ? / L W  

月 是 1-12 or JAN-DEC  , - * /  

星期的某天 是 1-7 or SUN-SAT  , - * ? / L #  

年 否 empty, 1970-2099  , - * /

先看示列:"0 0/30 8-10 5,20 * ?" 表示“每个月的5日和20日的8:00,8:30,9:00,9:30,10:00,10:30”

字符解释:

,:与,表式","两边的值都是需要执行的时间,如上例"5,20",每个月的5日与20日。

-:表示值的范围,如上例"8-10",从8点开始到10结束,包括8点与10点。

*:表式任意可合法的值,如上例"*"是处于月份的字段,所以代表1-12中的任意值,所以上例是指“每个月”。

/:增量,如上例是指从0分开始,每过30分钟取一次值。如果换成"5/8"就是从第5钟开始每过8分钟取一次值:8:05,8:13,8:21,8:29等等

?:不指定值,就是“我也不知道”的意思,只能出现在“月的某天,星期的某天”项中。在什么情况下用呢?如上例如果指定值为星期一,那么可能会出现如4月5日不是星期一,这里就是不对应,有冲突,所以指定为"?",也就是说我也不知道是星期几,只要是5日与20日就行了,至于是星期几我才不管呢!

L:最后的,last的意思,只能出现在“月的某天,星期的某天”项中。表示当前月或当前星期的最后一天,注意的是星期的最后一天为星期六。

W:月中最接近指定日期的普通日(星期一到星期五),只能出现在“月的某天”,如"15W"就是说当前月最接近15日的普通日,如果当月的15是星期三就是星期三,如果当月的15是星期六那么就是昨天也就是星期五,如果当月的15是星期天则为第二天也就是星期一。

#:当前月的第N个星期X日,只能出现在“星期的某天”项中。如"6#3"就是说当前月的第三个星期五,注意"1-7",1=星期天,2=星期一 等等。

 

 

以下是实际项目中的配置样例:

<bean id="feeEndorseTransfer" class="cn.com.service.FeeEndorseTransfer">

</bean>

<bean id="feeEndorseToCore"

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<!--实际调用类-->

<property name="targetObject" ref="feeEndorseTransfer" />

<!--实际调用方法-->

<property name="targetMethod" value="feeEndorseTransfer" />

</bean>

   <!-- 触发器 -->

<bean id="feeEndorseToCoreTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail">

<ref bean="feeEndorseToCore" />

</property>

<property name="cronExpression">

<value>0 0 * * * ?</value>

</property>

</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="triggers">

<list>

<ref local="feeEndorseToCoreTrigger" />

</list>

</property>

</bean>

http://www.eshow365.cn

 

分享到:
评论

相关推荐

    CronTrigger

    ### CronTrigger 在 Spring Quartz 定时任务中的应用 #### 一、CronTrigger 概述 CronTrigger 是 Spring Quartz 框架中用于定义基于日历规则的任务调度的一种方式。与 SimpleTrigger 相比,CronTrigger 提供了更...

    Spring Boot实战派(源码)

    - 使用`@Scheduled`注解实现定时任务,或者集成Quartz或CronTrigger。 11. **消息传递** - Spring Boot支持集成RabbitMQ、Kafka等消息中间件,使用`@RabbitListener`或`@KafkaListener`处理消息。 12. **缓存** ...

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

    触发器可以是CronTrigger或SimpleTrigger,配置方式与`@Scheduled`类似,只是语法和配置位置不同。 在实际应用中,我们可能还需要考虑任务的并发控制、异常处理、任务状态监控等问题。`spring-task`和Quartz都提供...

    spring的定时任务的配置

    Spring 提供了两种类型的 Trigger:`SimpleTrigger` 和 `CronTrigger`。 - **CronTrigger**:基于 cron 表达式的触发器,可以非常灵活地指定执行时间。 - **SimpleTrigger**:简单重复执行的触发器。 示例...

    spring+quartz demo

    可以使用 CronTrigger 或 SimpleTrigger,前者基于 Cron 表达式,后者基于固定间隔。在 Spring 配置中,通过 `&lt;bean&gt;` 标签创建 Trigger 实例,并与 JobDetail 关联。 4. **Job 类实现**: Job 类是执行实际任务的...

    Java_Spring与Quartz的整合

    Quartz提供了多种Trigger类型,如SimpleTrigger(简单触发器)、CronTrigger(基于cron表达式的时间触发器)等。 - 在Spring配置中,使用`&lt;bean&gt;`标签定义Trigger,并关联Job。 4. **启动Scheduler** - 在Spring...

    Spring中定时任务

    `JobDetail`和`CronTrigger`分别是定义Job和Cron表达式触发的类。 - 配置与集成:在Spring的配置文件中,你需要定义`SchedulerFactoryBean`,并将`JobDetail`和`Trigger`注入其中,以便让Spring管理Quartz的调度。 ...

    spring-quartz定时设置详细说明

    Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 ...

    spring 定时器的两种实现

    CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger", "group1") .withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(job, trigger); } @DisallowConcurrentExecution...

    spring Quartz的jar包

    Spring Quartz是Spring框架与Quartz任务调度库的集成,它为开发者提供了在Spring应用中进行任务调度的强大功能。Quartz是一个开源的作业调度框架,能够处理执行周期性任务的需求。在Java环境中,Spring Quartz使得...

    Spring_QuartZDemo

    【Spring_QuartZDemo】是一个使用Spring框架集成Quartz定时任务的示例项目,它展示了如何在Java应用中利用Spring和Quartz实现任务调度。Quartz是Java领域一款功能强大的开源作业调度库,能够帮助开发者创建、调度和...

    Spring排程(Scheduling)技术

    Spring 排程(Scheduling)技术是Spring框架中用于实现定时任务的重要功能,它允许开发者在应用程序中安排任务定期执行,以满足各种自动化需求,如数据同步、日志清理、定时报告生成等。排程技术的核心在于管理和...

    Spring Quartz Demo

    Spring支持`CronTrigger`和`SimpleTrigger`,前者基于Cron表达式定义,后者则根据固定延迟或间隔时间来触发。 6. **启动和关闭调度器**:在Spring Boot应用中,可以通过`@PostConstruct`和`@PreDestroy`注解来分别...

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...

    spring的quartz使用实例

    Spring整合Quartz是一款常见的任务调度解决方案,它允许开发者在应用程序中安排定时任务的执行。Quartz是一个开源的作业调度框架,而Spring通过提供一个简洁的API使得与Quartz的集成变得简单。以下是对Spring整合...

    spring设置动态定时任务

    &lt;bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"&gt; * * * * ?"/&gt; ``` `cronTrigger` 定义了一个基于 Cron 表达式的触发器,`cronExpression` "0/10 * * * * ?" 表示每10...

    spring quartz简单例子

    Spring Quartz是一个强大的任务调度框架,常用于在Java应用中实现定时任务。这个“spring quartz简单例子”是一个实际的项目示例,它展示了如何在Spring框架中集成Quartz库,以便在Tomcat服务器上运行并观察任务执行...

    spring定时任务实现

    它可以处理固定间隔的任务,也可以使用`CronTrigger`实现基于cron表达式的定时任务。与Quartz不同,Spring Task中的作业类不需要继承特定基类,保持了类的普适性。此外,Spring Task与Spring框架的集成更加紧密,...

    spring定时任务配置

    spring定时任务SimpleTrigger 和CronTrigger 配置

    spring quartz

    Spring Quartz支持多种触发器类型,如SimpleTrigger(简单触发器)和CronTrigger(cron表达式触发器)。 3. **Scheduler**:Scheduler是整个调度系统的核心,负责管理和执行所有的Job和Trigger。在Spring中,我们...

Global site tag (gtag.js) - Google Analytics