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 在 Spring Quartz 定时任务中的应用 #### 一、CronTrigger 概述 CronTrigger 是 Spring Quartz 框架中用于定义基于日历规则的任务调度的一种方式。与 SimpleTrigger 相比,CronTrigger 提供了更...
- 使用`@Scheduled`注解实现定时任务,或者集成Quartz或CronTrigger。 11. **消息传递** - Spring Boot支持集成RabbitMQ、Kafka等消息中间件,使用`@RabbitListener`或`@KafkaListener`处理消息。 12. **缓存** ...
触发器可以是CronTrigger或SimpleTrigger,配置方式与`@Scheduled`类似,只是语法和配置位置不同。 在实际应用中,我们可能还需要考虑任务的并发控制、异常处理、任务状态监控等问题。`spring-task`和Quartz都提供...
Spring 提供了两种类型的 Trigger:`SimpleTrigger` 和 `CronTrigger`。 - **CronTrigger**:基于 cron 表达式的触发器,可以非常灵活地指定执行时间。 - **SimpleTrigger**:简单重复执行的触发器。 示例...
可以使用 CronTrigger 或 SimpleTrigger,前者基于 Cron 表达式,后者基于固定间隔。在 Spring 配置中,通过 `<bean>` 标签创建 Trigger 实例,并与 JobDetail 关联。 4. **Job 类实现**: Job 类是执行实际任务的...
Quartz提供了多种Trigger类型,如SimpleTrigger(简单触发器)、CronTrigger(基于cron表达式的时间触发器)等。 - 在Spring配置中,使用`<bean>`标签定义Trigger,并关联Job。 4. **启动Scheduler** - 在Spring...
`JobDetail`和`CronTrigger`分别是定义Job和Cron表达式触发的类。 - 配置与集成:在Spring的配置文件中,你需要定义`SchedulerFactoryBean`,并将`JobDetail`和`Trigger`注入其中,以便让Spring管理Quartz的调度。 ...
Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 ...
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger", "group1") .withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(job, trigger); } @DisallowConcurrentExecution...
Spring Quartz是Spring框架与Quartz任务调度库的集成,它为开发者提供了在Spring应用中进行任务调度的强大功能。Quartz是一个开源的作业调度框架,能够处理执行周期性任务的需求。在Java环境中,Spring Quartz使得...
【Spring_QuartZDemo】是一个使用Spring框架集成Quartz定时任务的示例项目,它展示了如何在Java应用中利用Spring和Quartz实现任务调度。Quartz是Java领域一款功能强大的开源作业调度库,能够帮助开发者创建、调度和...
Spring 排程(Scheduling)技术是Spring框架中用于实现定时任务的重要功能,它允许开发者在应用程序中安排任务定期执行,以满足各种自动化需求,如数据同步、日志清理、定时报告生成等。排程技术的核心在于管理和...
Spring支持`CronTrigger`和`SimpleTrigger`,前者基于Cron表达式定义,后者则根据固定延迟或间隔时间来触发。 6. **启动和关闭调度器**:在Spring Boot应用中,可以通过`@PostConstruct`和`@PreDestroy`注解来分别...
Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...
Spring整合Quartz是一款常见的任务调度解决方案,它允许开发者在应用程序中安排定时任务的执行。Quartz是一个开源的作业调度框架,而Spring通过提供一个简洁的API使得与Quartz的集成变得简单。以下是对Spring整合...
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> * * * * ?"/> ``` `cronTrigger` 定义了一个基于 Cron 表达式的触发器,`cronExpression` "0/10 * * * * ?" 表示每10...
Spring Quartz是一个强大的任务调度框架,常用于在Java应用中实现定时任务。这个“spring quartz简单例子”是一个实际的项目示例,它展示了如何在Spring框架中集成Quartz库,以便在Tomcat服务器上运行并观察任务执行...
它可以处理固定间隔的任务,也可以使用`CronTrigger`实现基于cron表达式的定时任务。与Quartz不同,Spring Task中的作业类不需要继承特定基类,保持了类的普适性。此外,Spring Task与Spring框架的集成更加紧密,...
spring定时任务SimpleTrigger 和CronTrigger 配置
Spring Quartz支持多种触发器类型,如SimpleTrigger(简单触发器)和CronTrigger(cron表达式触发器)。 3. **Scheduler**:Scheduler是整个调度系统的核心,负责管理和执行所有的Job和Trigger。在Spring中,我们...