定时任务的 cron 表达式
一、什么时 cron 表达式
Cron表达式是一种广泛应用于Linux系统的时间表示格式,常用于定时任务的调度
。Cron表达式可以通过指定不同的时间参数,描述一个在 未来某个时间点执行的任务
。
二、Cron表达式语法
秒 分 时 日 月 周几
表达式中每个字段的含义:
- 秒(0~59)秒的取值范围为0到59。表示每分钟的哪一秒钟执行任务。
- 分(0~59)分的取值范围为0到59。表示每小时的哪一分执行任务。
- 时(0~23)时的取值范围为0到23。表示每天的哪一小时执行任务。
- 日(1~31)日的取值范围为1到31,其中有些月份日数为30天或28天,所以当超出这些范围时,Cron表达式会自动处理。
- 月(1~12)月的取值范围为1到12。表示每年的哪一月执行任务。
- 周几(0~7)周几的取值范围为0到7。
0和7都代表周日
,1到6依次代表周一到周六。如果同时指定了日和周几,那么该任务会在满足两个条件时才执行。
三、Cron表达式特殊字符
- *:表示匹配所有可能的值。
- ?:只能用在日和周几字段中,表示不关心具体是哪一天或哪一个星期几,可以用于通配符。
- -:表示区间,如在小时字段中使用10-12表示10点到12点。
- ,:表示列表,如在周几字段中使用MON,WED,FRI表示周一、周三和周五。
- /:表示递增,如在秒字段中使用3/15表示从第3秒开始每隔15秒执行一次。
Cron表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
从0时0分0秒开始,每隔1小时执行一次:0 0 0/1 * * ?