在Java编程语言中,cron表达式是一种用于配置计划任务(scheduled tasks)的字符串,它定义了任务的执行频率。cron表达式由六个或七个空格分隔的字段组成,每个字段都代表了任务调度的一个时间单位。

这里是cron表达式的基本结构和各个字段的含义:

1.秒(0-59)
2.分(0-59)
3.小时(0-23)
4.月中的日(1-31)
5.月(1-12 或 JAN-DEC)
6.周中的日(0-7,其中0和7都代表周日,或者使用 SUN-SAT)
7.年(可选,1970-2099)
每个字段可以包含具体的值、范围、列表或特殊字符。以下是一些特殊字符及其含义:

1) *(星号):表示任何值。例如,在“分钟”字段中使用*表示每分钟都执行任务。

2)?(问号):表示无特定值。通常用于“月中的日”和“周中的日”字段之间的互斥。

3)-(连字符):表示一个范围。例如10-12在“小时”字段中表示从10到12点每小时。

4),(逗号):用于列出多个值。例如MON,WED,FRI在“周中的日”字段中表示每周的星期一、三、五。

5)/(斜杠):表示增量。例如在“分钟”字段中0/15表示从0分钟开始,每15分钟执行一次。

0 0 12 * * ?:每天中午12点执行。
0 15 10 ? * *:每天上午10点15分执行。
0 0/5 14 * * ?:在每天下午2点到2点59分期间,每5分钟执行一次。
0 0-5 14 * * ?:在每天下午2点到2点05分期间,每分钟执行一次。
0 0 8-10 * * ?:每天上午8点到10点之间,每小时的0分执行。
0 0 6,19 * * ?:每天上午6点和晚上7点执行。
使用cron表达式可以灵活地安排定时任务,适用于需要定期执行的背景作业,如数据库备份、定期数据同步等。在Java中,你可以使用java.util.Timer类或更强大的第三方库如Quartz来处理这些定时任务。

例子:表达式 0 */1 * * * ? 表示每分钟的第0秒执行一次任务。在cron表达式中,*/1 这种形式表示从当前值开始,每隔1单位时间执行一次。由于这里是分钟字段,*/1 表示每一分钟。

各个字段的意义如下:

秒:0 —— 在每分钟的第0秒触发。
分:*/1 —— 每分钟。
小时:* —— 每小时。
月中的日:* —— 每天。
月:* —— 每个月。
周中的日:? —— 没有具体的星期几限制,用问号表示在“月中的日”已经指定的情况下不需要额外指定。
因此,这个cron表达式设置了一个任务,该任务将在一天24小时内,每小时的每一分钟的第0秒执行,相当于是每分钟执行一次任务。这种类型的定时任务常用于需要频繁执行的任务,例如监控或数据采集。

这个 cron 表达式 "0 0/15 14 * * ?" 表示在每天的下午 2 点到 2:45 之间,每隔 15 分钟触发一次任务。具体来说,它在 14:00, 14:15, 14:30, 和 14:45 分别触发一次。这里各个字段的含义是:

第一个 "0" 表示秒数,指定在每分钟的第 0 秒触发。

"0/15" 表示从每小时的 0 分钟开始,每隔 15 分钟触发一次。

"14" 表示小时,即下午 2 点。

接下来的两个 "*" 分别代表日和月,表示每天、每月。

最后的 "?" 是用于替代日(星期中的日期)的位置,因为日已经通过 "*" 指定了,这里用 "?" 表示不指定具体的星期几。

这种表达式通常用于定时执行某些需要在特定时间段内重复执行的任务。

 

 

 

05-05 01:04