`
shift8
  • 浏览: 150001 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

SPRING 定时任务设置详解

阅读更多

org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时间,只需要设置其cronExpression属性

一个cronExpression表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:

1.秒(059

2.分钟(059

3.小时(023

4.月份中的日期(131

5.月份(112JANDEC

6.星期中的日期(17SUNSAT

7.年份(19702099

0 0 10,14,16 * * ?

每天上午10,下午2点和下午4

0 0,15,30,45 * 1-10 * ?

每月前10天每隔15分钟

30 0 0 1 1 ? 2012

201211日午夜过30秒时

0 0 8-5 ? * MON-FRI

每个工作日的工作时间

各个时间可用值如下:

0-59 , - * /

0-59 , - * /

小时 0-23 , - * /

1-31 , - * ? / L W C

1-12 or JAN-DEC , - * /

周几 1-7 or SUN-SAT , - * ? / L C #

(可选字段) empty, 1970-2099 , - * /

可用值详细分析如下:

*”——字符可以用于所有字段,在字段中设为"*"表示"每一分钟"的含义。

?”——字符可以用在周几字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。

-”——字符被用来指定一个值的范围,比如在小时字段中设为"10-12"表示"10点到12"

,”——字符指定数个值。比如在周几字段中设为"MON,WED,FRI"表示"the days Monday, Wednesday, and Friday"

/”——字符用来指定一个值的的增加幅度. 比如在字段中设置为"0/15"表示"0, 15, 30, 45"。而 "5/15"则表示"5, 20, 35, 50". '/'前加"*"字符相当于指定从0秒开始. 每个字段都有一系列可以开始或结束的数值。对于字段来说,其数值范围为059,对于小时字段来说其为023, 对于字段来说为031, 而对于字段来说为112"/"字段仅仅只是帮助你在允许的数值范围内从开始"n"的值。

L”——字符可用在周几这两个字段。它是"last"的缩写, 但是在这两个字段中有不同的含义。例如,“字段中的"L"表示"一个月中的最后一天" —— 对于一月就是31号对于二月来说就是28号(非闰年)。而在周几字段中, 它简单的表示"7" or "SAT",但是如果在周几字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×" —— 比如"6L"表示"该月最后一个周五"。当使用'L'选项时,指定确定的列表或者范围非常重要,否则你会被结果搞糊涂的。

W”——可用于字段。用来指定历给定日期最近的工作日(周一到周五) 。比如你将字段设为"15W",意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日, 触发器会在16号也就是周一触发。如果15号为周二,那么当天就会触发。然而如果你将字段设为"1W", 而一号又是周六, 触发器会于下周一也就是当月的3号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于字段的值为单独的一天而不是一系列值的时候。

L”和“W”可以组合用于字段表示为'LW',意为"该月最后一个工作日"

#”—— 字符可用于周几字段。该字符表示该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。再比如: "2#1" = 表示该月第一个周一而 "4#5" = 该月第五个周三。注意如果你指定"#5"该月没有第五个×”,该月是不会触发的。

C”—— 字符可用于周几字段,它是"calendar"的缩写。 它表示为基于相关的日历所计算出的值(如果有的话)。如果没有关联的日历, 那它等同于包含全部日历。字段值为"5C"表示"日历中的第一天或者5号以后"周几字段值为"1C"则表示"日历中的第一天或者周日以后"

对于月份字段和周几字段来说合法的字符都不是大小写敏感的。

一些例子:

"0 0 12 * * ?" 每天中午十二点触发
"0 15 10 ? * *"
每天早上1015触发

"0 15 10 * * ?"
每天早上1015触发

"0 15 10 * * ? *"
每天早上1015触发

"0 15 10 * * ? 2005" 2005
年的每天早上1015触发

"0 * 14 * * ?"
每天从下午2点开始到259分每分钟一次触发

"0 0/5 14 * * ?"
每天从下午2点开始到255分结束每5分钟一次触发

"0 0/5 14,18 * * ?"
每天的下午2点至2556点至655分两个时间段内每5分钟一次触发

"0 0-5 14 * * ?"
每天14:0014:05每分钟一次触发

"0 10,44 14 ? 3 WED"
三月的每周三的14101444触发

"0 15 10 ? * MON-FRI"
每个周一、周二、周三、周四、周五的1015触发

"0 15 10 15 * ?"
每月15号的1015触发

"0 15 10 L * ?"
每月的最后一天的1015触发

"0 15 10 ? * 6L"
每月最后一个周五的1015

分享到:
评论

相关推荐

    spring 定时任务配置详解

    Spring 定时任务配置详解 Spring 框架提供了对定时调度服务的内置支持类,支持从 JDK 1.3 开始内置的 Timer 类和 Quartz Scheduler。开发者可以通过 FactoryBean,分别指向 Timer 或 Trigger 实例的引用进行配置。...

    spring定时任务配置详解.doc

    在Spring框架中,定时任务是通过Spring的Task执行器或者Quartz库来实现的,用于在指定的时间间隔或特定时间点执行重复性任务。这里我们将深入讲解如何在Spring中配置和使用定时任务。 首先,Spring提供了两种定时...

    spring执行定时任务的规则

    ### Spring执行定时任务的规则详解 在Spring框架中,实现定时任务主要依赖于Spring的集成模块Spring Integration或通过集成第三方库如Quartz来完成。本文将重点介绍如何利用Spring框架结合表达式规则来配置和执行...

    Spring 定时任务

    ### Spring 定时任务 在Spring框架中,定时任务是一个非常重要的特性,它允许开发者以简单的方式实现周期性任务的调度。Spring通过`@Scheduled`注解提供了对定时任务的支持,该注解可以轻松地应用于任何Java方法上...

    Spring3.2.6定时任务+线程池.docx

    ### Spring3.2.6定时任务与线程池配置详解 #### 一、背景介绍 在现代软件开发中,为了提高系统的并发处理能力和资源利用率,往往需要利用到多线程技术来实现定时任务的处理。Spring框架作为Java企业级应用开发中的...

    Spring普通定时任务和动态设置定时任务

    ### Spring 普通定时任务与动态设置定时任务详解 #### 一、Spring 定时任务简介 在软件开发过程中,经常会遇到需要周期性执行的任务,例如数据备份、定时发送邮件等。对于这类需求,Spring 提供了一种简单且灵活的...

    Spring定时任务的几种实现

    ### Spring定时任务的几种实现 #### 一、定时任务实现技术分类 在Spring框架中,实现定时任务的主要技术方案有三种: 1. **Java自带的`java.util.Timer`类**:这种实现方式允许用户调度一个`java.util.TimerTask`...

    详解SpringBoot 创建定时任务(配合数据库动态执行)

    然后在方法上使用@Scheduled注解,并设置相应的cron表达式来指定定时任务的执行周期。Cron表达式由6或7个空格分隔的时间字段组成,分别代表秒、分、时、天、月、周几。例如,"0/5 *** ?"表示每5秒执行一次。 动态...

    spring的定时任务的配置

    ### Spring 定时任务配置详解 #### 一、Spring 定时任务简介 Spring 框架提供了强大的任务调度功能,使得开发者能够轻松地在应用中实现定时任务。本篇文章将详细探讨如何在 Spring 中配置定时任务,并通过具体的...

    spring设置动态定时任务

    【Spring 动态定时任务详解】 在 Spring 中,动态定时任务是一种允许用户在不重启服务的情况下,自由调整任务执行时间的机制。这种功能通常通过集成第三方定时任务框架,如 Quartz,来实现。Quartz 是一个功能强大...

    Spring 的定时任务

    #### 一、Spring定时任务简介 Spring框架提供了强大的集成能力,其中定时任务是其重要的功能之一。通过Spring框架可以方便地管理各种定时任务,无需关心复杂的线程管理和调度逻辑。本文将详细介绍如何在Spring应用...

    玩转SpringBoot之定时任务详解

    ### 玩转Spring Boot之定时任务详解 #### 序言 在现代软件开发中,定时任务是非常重要的功能之一,特别是在后台服务系统中。通过定时任务可以实现诸如定期备份数据、定时发送邮件通知等需求。Spring Boot框架因其...

    spring定时.txt

    ### Spring 定时任务知识点详解 #### 一、Spring 定时任务概述 Spring 框架提供了多种方式来实现定时任务,其中一种常见的做法是利用 `java.util.Timer` 类来实现基本的定时任务功能。此外,对于更复杂的场景,...

    spring2.5 定时器任务

    在Spring框架2.5版本中,提供了强大的定时任务管理功能,支持多种方式来实现定时任务的调度与执行。这为开发人员提供了一个灵活且易于集成的解决方案,使得应用程序能够按照预定的时间间隔或特定时间点执行某些任务...

    Spring Boot中的@Scheduled注解:定时任务的原理与实现

    ### Spring Boot中的@Scheduled注解:定时任务的原理与实现 #### 一、引言 在现代软件开发中,定时任务是一种非常常见的需求。无论是数据同步、定期清理缓存还是发送提醒邮件,都需要应用程序能够在特定的时间点...

    spring 定时任务@Scheduled详解

    首先,要启用Spring的定时任务功能,需要在Spring的配置文件中进行设置。例如,在一个XML配置文件中,你可以添加以下配置: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    java开发之spring定时任务时间格式cronexpression设置.docx

    ### Java开发之Spring定时任务时间格式CronExpression设置详解 #### 一、引言 在Java开发中,Spring框架提供了一种强大且灵活的方式来管理定时任务。其中,`CronExpression`是一种常用的表达式,用于定义任务执行...

    Spring监听器及定时任务实现方法详解

    Spring监听器及定时任务实现方法详解 在本文中,我们将详细介绍Spring监听器及定时任务实现方法的详解。通过示例代码,我们将展示如何使用Spring监听器和定时任务来实现批处理任务的执行。 Spring监听器 在Spring...

    spring设置动态定时任务.pdf

    总结来说,Spring通过Quartz提供了强大的定时任务管理能力,包括动态设置定时任务的执行时间。通过正确配置`MethodInvokingJobDetailFactoryBean`、`CronTriggerBean`以及`SchedulerFactoryBean`,并结合业务接口...

    spring_quartz_定时任务

    《Spring与Quartz实现定时任务详解》 在Java开发中,定时任务的处理是一项重要的功能,它能够按照预设的时间规律自动执行特定的任务,比如数据同步、报表生成等。Spring框架,作为Java企业级应用的基石,提供了丰富...

Global site tag (gtag.js) - Google Analytics