Cron表达式详解

无论是在软件开发还是实际生产过程中,定期执行特定的任务或者指令是非常有必要的,这不但能够将程序员们从这种重复劳动中解放出来,而且任务的执行周期也更加准确。

任务调度框架中,为了表示任务的执行周期,cron表达式被发明出来。

1、何为Cron表达式

cron表达式是类unix系统中用于表示任务调度的表达式,能够表示特定周期进行的特定的时间、日期等。

cron表达式的具体形式,有两种说法:

1)根据百度百科,cron表达式由6个或7个域表示,域之间使用空格分开;

2)根据维基百科,cron表达式由5个或6个域表示,域之间使用空格分开;

两种来源基本相同,区别在于维基百科当中不考虑秒(SECONDS)这一个属性。除此之外,二者共同包括的内容有:

minute hour dayofmonth monthofyear dateofweek year(可以省略)

本文中参考百度百科的说法,采用以下格式:

second minute hour dayofmonth monthofyear dateofweek year(可以省略)

2、cron表达式的格式

1)second minute hour

这三个时间域的间隔表示法各有四种,分别为:

A) 全部时间,通配符为“*”;

B)一段持续时间,通配符为“-”;

C)从特定时间点开始,以特定的周期持续的时间,通配符为“/”;

D)某一些时间点,通配符为“,”;

示例):

  • 每秒一次:* * * * * ?
  • 每10秒一次:0/10 * * * * ?
  • 每分钟的20秒-30秒执行:20-30 * * * * ?
  • 每分钟一次:0 * * * * ?
  • 每5分钟一次:0 0/5 * * * ?
  • 每小时一次:0 0 * * * ?
  • 每天中午12点:0 0 12 * * ?

2)day month date year

这四个时间域的表示方法同前三个略有不同:

day,date的表示方法各有6种:

day的表示方法:

A)每一天,通配符为“*”;

B)从某一天到某一天,每天一次,通配符为“-”;

C)从某一天开始,每隔几天一次,通配符为“/”;

D)每月特定的日子,通配符为“,”;

E)每月最后一天,通配符为“L”;

F)每月距离某一天最近的工作日,通配符为“W”;

date的表示方法:

A)每一天,通配符为“*”;

B)某一周的某一天,通配符为“#”;

C)从某一天开始,每隔几天一次,通配符为“/”;

D)每月特定的日子,通配符为“,”;

E)每月最后一个星期,通配符为“L”;

month表达方式有4种,和second,minute,hour相同

A) 每个月,通配符为“*”;

B)从几月到几月,通配符为“-”;

C)从几月开始,之后每几个月一次,通配符为“/”;

D)某一些特定月份,通配符为“,”;

year表达方式有3三种:

A) 全部年份,通配符为“*”;

B)从某一年到某一年,通配符为“-”;

C)不指定,此时该域省略。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值