1.Cron表达式是基于频度的任务计划。
2.此正则表达式格式:
此正则表达式有六部分组成,以空格分隔,格式说明如下:
名称
|
必须
|
可用数值
|
可用字符
|
秒
|
是
|
0-59
|
, - * /
|
分
|
是
|
0-59
|
, - * /
|
时
|
是
|
0-23
|
, - * /
|
天
|
是
|
1-31
|
, - * ? / L W C
|
月
|
是
|
1-12 or JAN-DEC
|
, - * /
|
周
|
是
|
1-7 or SUN-SAT
|
, - * ? / L C #
|
说明:
1),'*' 字符可以用于所有字段,如在“分”字段中设为"*"表示"每一分钟"的含义。
2),'?' 字符可以用在“日”和“周”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的
某一个值而不是另外一个的时候会被用到。如
我想将触发器设置在在每月10号而并不在意这天是周几,
可将“日”字段设置成"10"而“周”字段设置成"?"
3),
'-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点".
4),',' 字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示将触发器设置在"Monday, Wednesday, and Friday".
5),'/' 字符用来指定一个值的的增加幅度. 比如在“秒”字段中设置为"0/15"表示"第0, 15, 30, 和 45秒"。
而 "5/15"则表示"第5, 20, 35, 和 50". 在'/'前加"*"字符相当于指定从0秒开始. 每个字段都有一系列
可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围为0到59,对于“小时”字段来说其为0到23,
对于“日”字段来说为0到31, 而对于“月”字段来说为1到12。
注意,"/"字段仅仅表示在允许的数值范围内从开始"第n"的值。例如对于“月”字段来说"7/6"只是表示7月被开启而不是“每六个月”, 。
6),'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写。例如,“日”字段中的"L"表示"一个月中的最后一天" ,
对于一月就是31号对于二月来说就是28号(非闰年)。而在“周几”字段中, 它简单的表示"7" or "SAT",
但是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×",比如"6L"表示"该月最后一个周五"。
7),'W' 可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五) 。比如将“日”字段设为"15W",
意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日, 触发器会在16号
也就是周一触发。如果15号为周二,那么当天就会触发。如果将“日”字段设为"1W", 而一号又是周六, 触发器会于下周一也
就是当月的3号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。
8),'L'和'W'可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。
9),'#' 字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。
"2#1"表示该月第一个周一而 "4#5" 表示该月第五个周三。如果指定"#5"该月没有第五个“周×”,该月是不会触发的。
10),'C' 字符可用于“日”和“周几”字段,它是"calendar"的缩写。 它表示为基于相关的日历所计算出的值(如果有的话)。
如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",
“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。
对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。
3. 例子
正则式
0 0 12 * * ? 每天中午十二点触发
0 15 10 ? * * 每天早上10:15触发
0 15 10 * * ? 每天早上10:15触发
0 15 10 * * ? * 每天早上10:15触发
0 15 10 * * ? 每天早上10:15触发
0 * 14 * * ? 每天从下午2点开始到2点59分每分钟一次触发
0 0/5 14 * * ? 每天从下午2点开始到2:55分结束每5分钟一次触发
0 0/5 14,18 * * ? 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
0 0-5 14 * * ? 每天14:00至14:05每分钟一次触发
0 10,44 14 ? 3 WED 三月的每周三的14:10和14:44触发
0 15 10 ? * MON-FRI 每个周一、周二、周三、周四、周五的10:15触发
0 15 10 15 * ? 每月15号的10:15触发
0 15 10 L * ? 每月的最后一天的10:15触发
0 15 10 ? * 6L 每月最后一个周五的10:15触发
0 15 10 ? * 6L 每月最后一个周五的10:15触发
0 15 10 ? * 6L 每月最后一个周五的10:15触发
0 15 10 ? * 6#3 每月的第三个周五的10:15触发
参照网址:
分享到:
相关推荐
总结一下,cron-expression-1.0.zip提供的工具是针对cron表达式的,包括Web界面和Java EXE应用。用户可以利用这些工具方便地创建、测试和管理cron表达式,从而更好地安排和控制定时任务。对于熟悉或需要了解cron...
总结来说,`quartz cronExpression`是Quartz框架中用于设定任务执行时间的重要组件,它基于标准的Unix cron表达式,提供了强大的定时规则定义能力。在实际开发中,我们需要根据业务需求合理设置cronExpression,确保...
总结起来,Java中的Cron表达式解析涉及到字符串处理、时间计算以及用户界面交互。通过使用Java Swing创建一个Cron表达式解析器,你可以提供一个直观的工具,帮助开发者更好地理解和使用这种强大的时间调度机制。同时...
2. 注解定时任务:在需要执行定时任务的方法上添加`@Scheduled(cron = "your_cron_expression")`。 ```java @Service public class MyTaskService { @Scheduled(cron = "0 30 8 * * ?") public void executeTask...
console.log("Cron expression updated:", cronExpression); }); ``` ### 4. Cron表达式基础 Cron表达式由5到6个(或7个,包含年份)空格分隔的字段组成,每个字段代表不同的时间单位:秒、分钟、小时、日期、...
总结,理解和掌握Cron表达式对于系统管理和自动化任务至关重要。在Elixir环境中,利用`Crontab`库,我们可以方便地解析、验证和调度基于Cron的周期性任务,从而提升工作效率和系统的自动化程度。通过实践和学习,你...
<cron-expression>0 0/5 * * * ?</cron-expression> </cron> ``` 上述代码定义了一个名为"MyJob"的作业和一个基于cron表达式的触发器"MyCronTrigger",该触发器每5分钟执行一次作业。 然而,有时我们需要在运行...
<cron-expression>0 0/5 * * * ?</cron-expression> </cron> ``` 在上述配置中,`<job>`元素定义了Job的基本信息,如名称、组别和实现类。`<trigger>`元素则定义了触发Job执行的规则,这里使用的是Cron ...
- `cron-expression`: Cron表达式,用于定义触发作业的精确时间。 Cron表达式是一种强大的工具,允许我们用6个或7个字段定义一个时间模式。例如,`0 0/5 * * * ?`表示每5分钟执行一次,具体解释为:秒(0),分钟...
在这个例子中,`MyJob`是Job的名称,`MyNamespace.MyJobType`是Job类的全名,`MyCronTrigger`是Trigger的名称,`cron-expression`定义了触发时间的CRON表达式。 **配置文件加载** 为了使Quartz.NET读取并应用`...
<cron-expression>0 0/5 * * * ?</cron-expression> </cron> ``` 这段XML定义了一个名为`MyJob`的Job,它的类是`com.example.MyJobClass`,并配置了一个CronTrigger,每五分钟执行一次。 四、使用Quartz API编程...
总结来说,Spring通过Quartz提供了强大的定时任务管理能力,包括动态设置定时任务的执行时间。通过正确配置`MethodInvokingJobDetailFactoryBean`、`CronTriggerBean`以及`SchedulerFactoryBean`,并结合业务接口...
2. **Quartz时间表达式**:Spring_quartz使用方法.txt 和 Spring framework实现定时器之Quartz.txt 这两份文件分别介绍了在Spring框架中如何利用Quartz设置定时任务,以及Quartz的时间表达式(Cron Expression)用法...
<cron-expression>0 0/5 * * * ?</cron-expression> </cron> ``` **代码动态调用方式**: 如果你希望在运行时动态创建和管理定时任务,那么可以通过代码来直接操作`IScheduler`接口。首先,你需要初始化一个调度...
<cron-expression>30 11 21 1 * *</cron-expression> </cron> ``` - **job-name**:任务名称。 - **job-class**:任务类名,这里是`com.inspur.db2db.Db2dbJob`。 - **mapfile**:指定同步操作的具体配置文件...
标题中的“工作流Activiti的学习总结(八)Activiti自动执行的应用”表明本文将探讨如何在Activiti工作流引擎中实现任务的自动化执行。Activiti是一个开源的工作流和业务流程管理(BPM)系统,广泛应用于企业级应用...
首先,我们需要创建一个数据库表来存储这些规则,如`job_config`,包含字段`id`、`task_name`、`cron_expression`等。 接着,我们可以创建一个服务类,查询数据库获取定时任务的配置,并通过`TaskScheduler`接口来...
cron_expression varchar(32) comment 'cron 表达式', ... ); ``` ### 三、开发进行中 1. **创建实体类**:定义一个表示定时任务的实体类,包含对应数据库表的字段,如`id`、`className`、`cronExpression`等。...
") // 每隔5秒执行一次 public void annotatedShow() { System.out.println("Annotated Show method 1 - Cron Expression: */5 * * * * ?"); } @Scheduled(fixedDelay = 10000) // 延迟10秒后执行,之后每次执行间隔...
每个任务都是一个`<task:scheduled>`元素,它包含`cron-expression`属性来指定cron表达式,这个表达式定义了任务的执行时间。例如: ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task=...