Cron Expressions
Cron 表达式
Cron-Expressions are used to configure instances of
CronTrigger.
Cron-Expressions are strings that are actually made up of six
sub-expressions, that describe individual details of the schedule.
These sub-expression are separated with white-space, and
represent:
Cron 表达式被用来注册CronTrigger实例的。Cron表达式是字符串,它由六个子表达式组成,它描述了不同的调度细节。这些子表达式被白色表达式隔开,表现:
Seconds 秒
Minutes 分
Hours 时
Day-of-Month 日
Month 月
Day-of-Week 周
An example of a complete cron-expression is the string
"0 0 12 ? * WED" - which means "every Wednesday at 12:00 pm".
一个完整的Cron 表达式例子是字符串“0 0 12 ? * WEB” 意味着每周三上午12:00。
Individual sub-expressions can contain ranges and/or
lists. For example, the day of week field in the previous (which
reads "WED") example could be replaces with "MON-FRI", "MON, WED,
FRI", or even "MON-WED,SAT".
单独的子表达式可以包含平行的
和/或。例如,在上一个例子一周的一天字段(它读作"WED")可以被“MON-FRI”,"MON,WED,FRI",或者甚至"MON-WED,SAT"替换掉。
Wild-cards (the '*' character) can be used to say
"every" possible value of this field. Therefore the '*' character
in the "Month" field of the previous example simply means "every
month". A '*' in the Day-Of-Week field would obviously mean "every
day of the week".
统配符("*"字符)可以被用来作为这个字段的"每一个"可能值。所以,在上一个例子月字段中的"*"字符表示每个月。
一个"*"在周天将明显意味着周的每一天。
All of the fields have a set of valid values that can be
specified. These values should be fairly obvious - such as the
numbers 0 to 59 for seconds and minutes, and the values 0 to 23 for
hours. Day-of-Month can be any value 0-31, but you need to be
careful about how many days are in a given month! Months can be
specified as values between 0 and 11, or by using the strings JAN,
FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC.
Days-of-Week can be specified as vaules between 1 and 7 (1 =
Sunday) or by using the strings SUN, MON, TUE, WED, THU, FRI and
SAT.
所有字段都用一个合法限定的值。这些值应该是明显的,例如0到59数字为秒和分的限定,0到23为小时。月的某天可以是0-31的,或者你需要消息给个月有多少天!月份可以被限定在0到11,或者,使用英文字符串缩写。一个礼拜的一天可以被限定作为1到7(1=Sunnday)或者使用英文字符串。
The '/' character can be used to specify increments to values. For
example, if you put '0/15' in the Minutes field, it means 'every 15
minutes, starting at minute zero'. If you used '3/20' in the
Minutes field, it would mean 'every 20 minutes during the hour,
starting at minute three' - or in other words it is the same as
specifying '3,23,43' in the Minutes field.
"/"字符可以内用来限定值的增加。例如,如果你将'0/15'放到分钟字段,它意味着"每15分钟,开始于0分钟"。如果你使用"3/20"在分钟字段中,你将意味着"一个小时内每20分钟,开始于3分钟"---
或者换言之,它和在分钟字段"3,23,43"限定是一样的。
The '?' character is allowed for the day-of-month and day-of-week
fields. It is used to specify "no specific value". This is useful
when you need to specify something in one of the two fields, but
not the other. See the examples below (and CronTrigger JavaDOC)
for clarification.
"?"字符是允许为月的某一天或者周的某一天字段的。它被用来限定"没有限定值"。这是有用的,当你需要限定一些事情在一个或两个字段中,但不是这里的。
The 'L' character is allowed for the day-of-month and
day-of-week fields. This character is short-hand for "last", but it
has different meaning in each of the two fields. For example, the
value "L" in the day-of-month field means "the last day of the
month" - day 31 for January, day 28 for February on non-leap years.
If used in the day-of-week field by itself, it simply means "7" or
"SAT". But if used in the day-of-week field after another value, it
means "the last xxx day of the month" - for example "6L" or "FRIL"
both mean "the last friday of the month". When using the 'L'
option, it is important not to specify lists, or ranges of values,
as you'll get confusing results.
"L"字符是允许用来月某天和周某天字段。这个字符是一个"last"的缩写,但是它有不同的意义在两个字段的其中之一。例如,这个值"L"在月字段的某一天意味着"
这个月的最后一天",31或者28等等。
Here are a few more examples of expressions and their meanings
- you can find even more in the JavaDOC for CronTrigger
下面有些例子,可以在JavaDoc里查询CronTigger更详细的内容。
CronTrigger Example 1
- an expression to create a trigger that simply fires every 5
minutes
每5分钟
"0 0/5 * * * ?"
CronTrigger Example 2
- an expression to create a trigger that fires every 5 minutes, at
10 seconds after the minute (i.e. 10:00:10 am, 10:05:10 am,
etc.).
每5分10秒
"10 0/5 * * * ?"
CronTrigger Example 3
- an expression to create a trigger that fires at 10:30, 11:30,
12:30, and 13:30, on every Wednesday and Friday.
每周三和周五的10:30,11:30,12:30,13:30
"0 30 10-13 ? * WED,FRI"
CronTrigger Example 4
- an expression to create a trigger that fires every half hour
between the hours of 8 am and 10 am on the 5th and 20th of every
month. Note that the trigger will NOT fire at 10:00 am, just at
8:00, 8:30, 9:00 and 9:30
在每月的第5天和第20天的8点至9点中,每隔30分钟(即8:00,8:30,9:00,9:30)。注意:不包括10:00。
"0 0/30 8-9 5,20 * ?"
Note that some scheduling requirements are too complicated to
express with a single trigger - such as "every 5 minutes between
9:00 am and 10:00 am, and every 20 minutes between 1:00 pm and
10:00 pm". The solution in this scenario is to simply create two
triggers, and register both of them to run the same job.
有些计划任务对于一个Tirgger来说太过复杂,例如“9:00至10:00中每5分钟,且每1:00pm至10:00pm中每20分钟”,解决办法是创建两个Trigger,用它们来共同完成这项任务。
相关推荐
### CronTrigger 在 Spring Quartz 定时任务中的应用 #### 一、CronTrigger 概述 CronTrigger 是 Spring Quartz 框架中用于定义基于日历规则的任务调度的一种方式。与 SimpleTrigger 相比,CronTrigger 提供了更...
【标题】:“CronTrigger的未触发指令学习” 在任务调度的世界里,CronTrigger是Quartz库中的一个核心组件,用于根据特定的cron表达式执行任务。CronTrigger允许我们按照时间表(如每日、每周或每小时)来安排我们...
CronTrigger是Quartz调度框架中的一个重要组件,用于根据预定义的时间规则触发任务。它的配置格式灵活且强大,能够满足各种复杂的定时需求。下面将详细解释CronTrigger的配置格式和通配符的使用。 配置格式如下: ...
### 关于Quartz中CronTrigger的使用说明 在Quartz调度器中,`CronTrigger`是一种基于Cron表达式的触发器,它允许我们按照类似Unix/Linux操作系统中的Cron任务的方式来定义执行时间表。通过CronTrigger,我们可以...
### Quartz CronTrigger配置详解 #### 一、CronTrigger简介 CronTrigger 是 Quartz 调度器中一种非常强大的任务触发机制,它基于类似于 Unix cron 的表达式来定义任务的执行时间。CronTrigger 表达式由七个或八个...
这个API文档详细地介绍了如何使用Quartz进行任务的定时执行。Quartz的核心概念包括Job(作业)、Trigger(触发器)和Scheduler(调度器)。下面我们将深入探讨这些概念以及它们在实际开发中的应用。 1. **Job**:在...
5. **CronTrigger**:CronTrigger允许使用Cron表达式来定义复杂的调度规则,例如按指定的日期和时间间隔执行Job。 二、API使用 1. **JobBuilder**和**TriggerBuilder**:这两个类提供了一种流畅的API来构建Job和...
获取 Quartz 的最新版本可以从官方网站(http://www.quartz-scheduler.org/)下载,解压缩后,你可以查看文档、示例代码和所依赖的库。对于开发,重点关注 examples 文件夹中的示例,这将帮助理解如何在实际项目中...
Quartz开发使用说明文档 Quartz是一个功能强大且广泛应用的开源作业调度框架,主要用于实现业务逻辑中的定时任务、批处理、事件触发等场景。Quartz的主要特点是高可用性、可扩展性、灵活配置、支持多种数据库和集群...
Quartz.NET提供了多种触发器,包括SimpleTrigger、CronTrigger和DailyTrigger等。 流程自定义接口动作 流程自定义接口动作是Ecology系统的重要组件,用于自定义工作流程。流程自定义接口动作提供了多种实现方法,...
4. **CronTrigger**:CronTrigger允许基于cron表达式设定触发时间,提供更复杂的调度能力,如按星期几、小时、分钟等进行调度。 5. **SimpleTrigger**:SimpleTrigger是最简单的触发器,用于设定固定间隔的重复执行...
CronTrigger允许基于Cron表达式来定义触发规则。Cron表达式由7个子表达式组成,分别表示秒、分钟、小时、日期、月份、星期和年份。例如,“0 0 12 * * ?”表示每天的12点整执行。 ### Quartz Cluster ...
这份2006年的帮助文档详细介绍了Quartz的使用方法和特性。 1. **Job**:在Quartz中,Job是你要执行的任务的抽象。你需要创建一个实现了`org.quartz.Job`接口的类,并在其中定义具体的业务逻辑。Job不直接与调度有关...
这个“quartzAPI-2.2.1参看文档”包含了关于 Quartz 2.2.1 版本的详细信息,非常适合学习和参考。 1. **Quartz基本概念**: - **Job**:是执行的具体任务,可以理解为一个工作单元,包含具体要执行的业务逻辑。 -...
SimpleTrigger用于一次性或按固定间隔重复执行作业,而CronTrigger则允许你使用类似Unix cron表达式的方式来定义复杂的调度规则,比如每工作日的9点30分执行任务。 Log4j,另一方面,是Java日志记录的一个经典库,...
对于触发器,`SimpleTrigger`用于一次性或定期执行,而`CronTrigger`则允许你根据Cron表达式定义更复杂的触发规则。 此外,文档可能还会介绍高级特性,如作业集群、并发控制、作业触发监听器和作业执行监听器,这些...
`SimpleTrigger`适用于一次性或固定间隔重复的任务,而`CronTrigger`允许使用Cron表达式定义复杂的执行时间,如按天、周、月等规则执行。`Calendar`对象可以与触发器关联,用于排除或包含特定日期,例如在法定节假日...
TriggerBean则负责触发任务的执行,通常使用CronTrigger,因为它支持基于cron表达式的定时规则。 Cron表达式是一种强大的时间表达方式,可以用来定义任务的执行频率。例如,“0 0 12 * * ?”表示每天中午12点执行...
同时,提供的"中文文档OSWorkflow-chinese-manual-2.8.pdf"可能不是直接关于Quartz的,但OSWorkflow是一个工作流管理系统,它的概念和实现方式也可以为理解Quartz提供一些帮助,因为它们都涉及到任务调度和流程控制...
CronTrigger trigger = new CronTrigger("CronTrigger", null, "0 30 7 ? * MON-FRI"); scheduler.scheduleJob(jobDetail, trigger); ``` - **调度器(Scheduler)**:Quartz框架的核心组件,负责管理和调度...