您现在的位置是:首页» 生活» 检测cron表达式正确性,cron表达式详解cron用法

检测cron表达式正确性,cron表达式详解cron用法

2023-09-13 09:16:58
今天小编为大家分享生活中的小常识、日常问题解答等相关内容,希望能够帮助大家。1、Cron表达式是由5或6个空格分隔的字符串,分为6或7个字段,每个字段代表一个含义。Cron有以下两种语法格式:2、秒分钟小时月日星期日年或秒分钟小时月日星期日。3、每个域中可能出现的字符如下:4、秒:可以出现'-*/'四个字符,有效范围为0-59的整数。5、分钟:可以出现'-*/'四个字符,有效范围为0-59的整数。6、小时:可以出现四个字符'-*/'有效范围为0-

今天小编为大家分享生活中的小常识、日常问题解答等相关内容,希望能够帮助大家。

1、Cron表达式是由5或6个空格分隔的字符串,分为6或7个字段,每个字段代表一个含义。Cron有以下两种语法格式:

2、秒分钟小时月日星期日年或秒分钟小时月日星期日。

3、每个域中可能出现的字符如下:

4、秒:可以出现'-*/'四个字符,有效范围为0-59的整数。

5、分钟:可以出现'-*/'四个字符,有效范围为0-59的整数。

6、小时:可以出现四个字符'-*/'有效范围为0-23的整数。

7、DayofMonth:可以出现'-*/?W c '八个字符,有效范围是0-31的整数。

8、月份:可以有四个字符'-*/'有效范围为1-12整数或1-12月

9、DayofWeek:可以出现'-*/?' L # '是四个字符,有效范围是从1到7的整数或SUN-SAT。1表示星期日,2表示星期一,依此类推

10、年份:可以出现'-*/'四个字符,有效范围为1970-2099。

11、每个字段都使用数字,但也可以出现下列特殊字符,它们表示:

12、(1)*:表示与域匹配的任何值。如果*用于分钟域,则表示每分钟都会触发事件。

13、(2)?只能在两个域中使用:DayofMonth和DayofWeek。它也匹配域的任何值,但它不匹配。因为DayofMonth和DayofWeek会互相影响。比如你想在每个月的20号触发排班,不管20号是什么日子,都只能用下面的写法:13 13 15 20 *?最后一个只能用?但不能用*。如果使用*则意味着不管是星期几都会触发,实际上并不是这样。

14、(3)-:表示范围。例如,在分钟域中使用5-20,这意味着从5到20分钟内每分钟触发一次。

15、(4)/:表示起始时间开始触发,之后每隔固定时间触发一次。例如,如果在分钟域中使用5/20,则意味着每5分钟触发一次,而25、45等。分别触发一次。

16、(5),表示列出了枚举值。例如,如果您在分钟域中使用5,20,这意味着它将在5分钟和20分钟的每一分钟被触发。

17、(6)L:表示最后只能出现在DayofWeek和DayofMonth域中。如果在DayofWeek域中使用5L,则意味着在最后一个星期四触发。

18、(7)W:表示有效工作日(周一至周五),只能出现在DayofMonth域中。系统将在离指定日期最近的有效工作日触发事件。比如在DayofMonth使用5W,如果5号是周六,那么在最近的工作日触发:周五,也就是4号。如果5日是周日,6日(周一)触发;如果5号落在周一到周五的某一天,则在5号触发。另一方面,W的最新搜索不会跨月。

19、(8)LW:这两个字可以连用,表示在一个月的最后一个工作日,即最后一个星期五。

20、(9)#:用于确定每月的星期几,只能出现在DayofMonth字段中。例如,在4#2中,它表示一个月的第二个星期三。

21、举几个例子:

22、0 0 2 1 * ?*表示在每月1日凌晨2: 00安排任务。

23、0 15 10 ?*周一至周五是指周一至周五每天上午10:15执行作业。

24、0 15 10 ?6L 2002-2006表示2002-2006年每个月的最后一个星期五将在上午10:15执行。

25、一cron表达式有至少6个(或者可能7个)由空格分隔的时间元素。

26、按顺序,它们是

27、秒(0~59)

28、分钟(0~59)

29、小时(0~23)

30、日(月)(0~31,但需要考虑你所在月份的天数)

31、月份(0~11)

32、日(周)(1 ~ 71=星期日或星期日,星期一,TUE,星期三,THU,星期五,星期六)

33、年份(1970年至2099年

34、其中每个元素可以是一个值(比如6),一个连续的间隔(9-12),一个间隔时间(8-18/4)(/表示每4小时),一个列表(1,3,5),通配符。由于“月中日期”和“周中日期”这两个元素是互斥的,因此必须设置其中一个。

35、0 0 10,14,16 * * ?每天上午10点,下午2点和4点。

36、0 0/30 9-17 * * ?在9-5个工作时间内,每半小时一次

37、0 0 12 ?*星期三是指每周三中午12点。

38、'0 0 12 * * ?'每天中午12点触发

39、'0 15 10 ?* * '每天上午10:15触发

40、'0 15 10 * * ?'每天上午10:15触发。

41、'0 15 10 * * ?* '每天上午10:15触发

42、'0 15 10 * * ?在2005年的每天上午10:15触发。

43、'0 * 14 * * ?'每天下午2点到2点59分之间每分钟触发一次。

44、'0 0/5 14 * * ?'每天下午2点到2点55分之间每5分钟触发一次。

45、'0 0/5 14,18 * * ?'每天下午2点到2点55分和下午6点到6点55分之间每5分钟触发一次。

46、'0 0-5 14 * * ?'每天下午2点到2点05分之间每分钟触发一次。

47、'0 10,44 14 ?“Wed”在每年三月的星期三下午2:10和2:44触发。

48、'0 15 10 ?*周一至周五在上午10:15触发

49、'0 15 10 15 * ?'每月15日上午10:15触发

50、0 15 10升*?'在每月最后一天的上午10:15触发

51、'0 15 10 ?* 6L '在每月最后一个星期五的上午10:15触发

52、'0 15 10 ?* 6L 2002-2005 '在2002年至2005年每个月的最后一个星期五上午10:15触发。

53、'0 15 10 ?* 6#3 '在每月的第三个星期五上午10:15触发

54、一些子表达式可以包含一些范围或列表。

55、例如,子表达式(日(周))可以是“周一至周五”、“周一、周三、周五”和“周一至周三、周六”

56、“*”字符代表所有可能的值。

57、因此,“*”在子表达式(月)中表示每个月,“*”在子表达式(日(周))中表示一周中的每一天。

58、“/”字符用于指定数值的增量。

59、例如,子表达式(分钟)中的“0/15”表示从第0分钟开始每隔15分钟。

60、子表达式(分钟)中的“3/20”表示从第3分钟开始每20分钟一次(与“3,23,43”含义相同)。

61、"?"字符仅用于日(月)和日(周)子表达式中,表示没有指定值。

62、当两个子表达式中的一个被赋值时,为了避免冲突,另一个子表达式的值需要被设置为“?”

63、“L”字符仅在日(月)和日(周)子表达式中使用,它是单词“最后”的缩写

64、但是它在两个子表达式中的含义是不同的。

65、在日(月)子表达式中,“L”表示一个月的最后一天。

66、在day (week)自我表述中,“L”的意思是一周的最后一天,也就是SAT。

67、如果“L”前有具体内容,就会有其他含义。

68、例如,“6L”表示本月倒数第六天,“FRIL”表示本月最后一个星期五。

69、注意:使用“L”参数时,不要指定列表或范围,因为这会导致问题。

本文到此结束,希望对大家有所帮助。

Www.yiLeen.com.CN艺莲園提供生活百科,美食,购物,旅游,房产,交通,家居,数码,科技,财经,教育,健康,娱乐,历史,汽车,生活消费门户网站

本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

联系邮箱:773537036@qq.com