今天在项目中遇到了创建定时任务,其参数就是依据Cron 表达式。
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron语法格式如下:
f1 f2 f3 f4 f5 f6 f7(可选的)
秒 分 时 日 月 星期 年
每一个域的解读和可出现的字符如下:
f1: 秒(0~59)可出现", - * /"四个字符,有效范围为0-59的整数
f2: 分钟(0~59)可出现", - * /"四个字符,有效范围为0-59的整数
f3: 小时(0~23)可出现", - * /"四个字符,有效范围为0-23的整数
f4: 日 (0~31,但是你需要考虑你月的天数) 可出现", - * / ? L W C"八个字符,有效范围为0-31的整数
f5: 月(1~12)可出现", - * /"四个字符,有效范围为1-12的整数
f6: 星期(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)可出现", - * / ? L C #"四个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推
f7: 年份(1970-2099)可出现", - * /"四个字符,有效范围为1970-2099年
Cron 符号及其含义:
* :代表整个时间段.
/ :表示每多长时间执行一次 0/15表示每隔15分钟执行一次,“0”表示为从“0”分开始;
? :表示每月的某一天,或第几周的某一天
L :“6L”表示“每月的最后一个星期五”
W:表示为最近工作日
Cron表达式举例:
(1)0 0 2 1 * ? * 每月的1日的凌晨2点触发
(2)0 0 10,14,16 * * ? 每天上午10点,下午2点,4点触发
(3)0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时触发
(4)0 0 12 * * ? 每天中午12点触发
(5) 30 10 * * *? 每小时的10分30秒触发
网友评论