1. 首页
  2. 综合百科
  3. java定时任务cron表达式每一个小时

java定时任务cron表达式每一个小时

简介:关于java定时任务cron表达式每一个小时的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

各位好,下面小编来分享一下。很多人不知道java定时任务每小时的cron表达式。下面详细解释一下。现在让我们来看看!

编写定时器时使用,记录它:

Cron表达式是一个字符串,由5或6空个单元格分隔,分为6或7个字段,每个字段代表一个意思。Cron有以下两种语法

格式:

秒分钟小时月日星期日年或

秒分钟小时日月月日周

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

密码

秒:可以出现,-*/四位字符,有效范围0-59。

分钟:可以出现,-*/四位字符,有效范围为0-59。

小时:可以出现,-*/四位字符,有效范围为0-23。

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

月:可以是,-*/四位字符,整数,有效范围为1-12或1-12

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

年:可以出现,-*/四位字符,有效范围为1970-2099。

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

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

(2)?:只能在两个域中使用:DayofMonth和DayofWeek。它也匹配域的任何值,但它不匹配。因为DayofMonth和DayofWeek会互相影响。

比如你想在每个月的20号触发排班,不管20号是什么日子,都只能用下面的写法:13131520*?,最后一个只能用?,而不是使用*,

如果用*表示不管星期几都会触发,那就不是。

(3)-:表示范围,例如,分钟域使用5-20,表示从5分钟到20分钟每分钟触发一次。

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

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

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

(7)W:表示有效工作日(周一至周五),只能出现在DayofMonth域中。系统将在离指定日期最近的有效工作日触发事件。

比如在DayofMonth使用5W,如果5号是周六,那么在最近的工作日触发:周五,也就是4号。如果5日是周日,6日触发;

如果5号落在周一到周五的某一天,则在5号触发。另一方面,W的最新搜索不会跨月。

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

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

举几个例子:

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

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

01510?6L2002-2006表示作业将在2000年至2006年每个月的最后一个星期五上午10:15执行。

91分钟

一个cron表达式至少有6个(或者可能有7个)时间元素,用空分隔。

按顺序,它们是

秒(0~59)

分钟(0~59)

小时(0~23)

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

月份(0~11)

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

7.年份(1970年至2099年)

其中每个元素可以是一个值(比如6),一个连续的间隔(9-12),一个间隔时间(8-18/4)(/表示每4小时),一个列表(1,3,5),通配符。

由于“月中日期”和“周中日期”这两个元素是互斥的,因此必须设置其中之一。

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

00/309-17**?在9-5个工作时间内,每半小时一次

0012?*星期三是指每周三中午12点。

"0012**?"每天中午12点触发

"01510?**"每天上午10:15触发

"01510**?"每天上午10:15触发。

"01510**?*"每天上午10:15触发。

"01510**?在2005年每天上午10:15触发”

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

"00/514**?"每天下午2点到2点55分之间每5分钟触发一次。

"00/514,18**?"每天下午2点到2点55分和下午6点到6点55分之间每5分钟触发一次。

"00-514**?"每天下午2点到2点05分之间每分钟触发一次。

"010,4414?Wed”在每年三月的星期三下午2:10和2:44触发。

"01510?*周一至周五在上午10:15触发

"0151015*?"每月15日上午10:15触发

“01510L*?”在每月最后一天的上午10:15触发

"01510?*6L"在每月最后一个星期五的上午10:15触发

"01510?*6L2002-2005”在2002年至2005年每个月的最后一个星期五上午10:15触发。

"01510?*6#3"在每月的第三个星期五上午10:15触发

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

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

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

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

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

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

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

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

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

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

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

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

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

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

比如“6L”表示本月倒数第六天,“Fril”表示本月最后一个星期五。

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

字段值允许的特殊字符

0-59秒,-*/

0-59分,-*/

0-23小时,-*/

日期1-31,-*?/LWC

1月12日或1月12日,-*/

周一至周日或周六,-*?/信用证号码

年份(可选)停留空,1970-2099,-*/

注意:日和周是第一位的。

?:代表可有可无。

*:代表每年。

分钟、天、月、周和年

0001012?2009//代表:于2009年12月10日0:00:00执行(星期几:'?'代表忽略)

0001012?*//代表:每年12月10日0:00:00执行。

00010*?//代表:每月10日0:00:00执行。

0011*?//代表:每月1日1:00:00执行。

00113,6,9?//代表:三月,六月,九月,一号凌晨一点。

00112-5?

以上解释了java定时任务的cron表达式。这篇文章每小时都在这里分享。希望能帮到大家。

本文主要介绍了关于java定时任务cron表达式每一个小时的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/86456.html