在做关于定时任务的时候碰到这个,就去了解一下,以下为暂时的知识存储:
cron生成器
以上地址为一个测试cron的网站:
以下摘自百度百科
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:
Seconds Minutes Hours DayofMonth Month DayofWeek Year或
Seconds Minutes Hours DayofMonth Month DayofWeek
每一个域可出现的字符如下:
Seconds:可出现", - * /"四个字符,有效范围为0-59的整数
Minutes:可出现", - * /"四个字符,有效范围为0-59的整数
Hours:可出现", - * /"四个字符,有效范围为0-23的整数
DayofMonth:可出现", - * / ? L W C"八个字符,有效范围为0-31的整数
Month:可出现", - * /"四个字符,有效范围为1-12的整数或JAN-DEc
DayofWeek:可出现", - * / ? L C #"八个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推
Year:可出现", - * /"四个字符,有效范围为1970-2099年
这里稍微翻译一下:
cron有两种表达式:暂时以*代替
* * * * * ? //这种是以五个空格分开,*的含义从左到右分别是 秒 分 时 日 月 星期 注意日和星期其中一个必为 ? (因为星期和日二者有一个决定哪一天)
* * * * * ? * //这种就是多了一个 年(一般这种比较少用)
现在来说说通配符:
"*"代表任意匹配 在这里就是每个 例子:
0 * * * * ? 这个就表示每月每日每分钟执行
0 12 * * * ? 这个就表示每月每日每小时的12分整执行
“?”:只能用在日或者星期这里,二者相互影响,因此只能一个使用,虽然依然是代表任意匹配,但是却不会有影响
“-” :代表范围(根据每个时间的范围来)
0 0 12-17 * * ? 这里就是每月每日12时到17时整执行
","表示枚举
0 0 13,14,15 * * ? 这里就是每月每日13时,14时,15时整执行
L表示最后
0 0 12 ? * 7l 这里就是 每月最后一个星期6的12时整执行
这里有个需要注意的 星期的范围是 1:7 是(周日 1,周一 2,周二 3,...周六 7, 这样计算的)
暂时就记下这些