1. 描述编辑
定时任务,顾名思义,就是在某个固定的时间点出发某一个事件(任务),显然,在定义定时任务的过程中,必须要设置任务执行的时间点,但是该任务可能是每天重复执行,隔日重复执行或者是单次执行等等各种不同组合的触发时间点,这时可以通过,如下图所示:
2. 定时表达式编辑
定时表达式设定为新引入的通过 cronExpression 来设定的机制,定时表达式设定的文本框可自己手动填写 cronExpression,也可通过点击旁边的「查看预置表达式」按钮来直接选择相应的表达式。点击「查看预置表达式」按钮时,展开预置表达式窗口,点击其中的文字说明,则其上的文本框显示并保存相应的 cronExpression,再次点击「收起预置表达式」按钮时收起预置表达式窗口。如下图所示:
预置表达式有以下几个:
a. 每月最后一天 19 点 50 分:0 50 19 L * ?
b. 每月最后一个工作日 19 点 50 分:0 50 19 LW * ?
c. 每月第 4 个周五 19 点 50 分:0 50 19 ? * 6#4
d. 2018 年第 4 季度每天 19 点 50 分:0 50 19 * 10-12 ? 2018
e. 每个工作日早上 9 点和晚上 6 点:0 0 9,18 ? * MON-FRI
3. cronExpression编辑
一个 Cron- 表达式是一个六至七个字段(字段包括固定的值和具有特殊意义的字符)组成,由空格分隔的字符串,其中秒、分、小时、日、月、周几这 6 个字段是必须的(顺序不可变更,从左至右),年是可选的,如下图所示:
字段名 | 允许的值 | 允许的特殊字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日 | 1-31 | , - * ? / L W |
月 | 1-12 or JAN-DEC | , - * / |
周几 | 1-7 or SUN-SAT | , - * ? / L # |
年(可选字段) | empty, 1970-2099 | , - * / |
含义为:「每一」,如:在「分」字段中「*」表示「每一分钟」。
字符可以用于所有字段。含义为:「不明确的值」,如:需要指定「周三」这个值,那么在「日」字段里面就需要使用「?」,因为不确定周三那天会是几号。
字符可以用在「日」和「周几」字段。含义为:「值的范围」,如:在「小时」字段中设为「10-12」表示「10 点到 12 点」。
字符可以用于所有字段。',' 字符可以用于所有字段。含义为:「指定多个值」,如:在「周几」字段中设为「MON,WED,FRI」表示「周一,周三和周五」。
含义为:「值的的增加幅度」,如:在「秒」字段中设置为「0/15」表示「第 0, 15, 30, 和 45 秒」,成等差数列递增,增值为 15,最大值不能超过允许的最大值 60; 在'/'前加「*」字符相当于指定从 0 秒开始;每个字段都有一系列可以开始或结束的数值,开始的值不能大于允许的最大值,结束的值也不能大于允许的最大值。
。含义为:「是「last」的缩写,表示最后」,如:「日」字段中的「L」表示「一个月中的最后一天」;而在「周几」字段中, 它简单的表示「7」 or 「SAT」,但是如果在「周几」字段中使用时跟在某个数字之后, 它表示「该月最后一个星期×」, 例如 6L 表示「该月最后一个周五」。
字符可用在「日」和「周几」这两个字段。含义为:「离给定日期最近的工作日(周一到周五) 」,如:将「日」字段设为「15W」,意为: 「离该月 15 号最近的工作日」。因此如果 15 号为周六,触发器会在 14 号即周五触发,如果 15 号为周日, 触发器会在 16 号也就是周一触发,如果 15 号为周二,那么当天就会触发。然而如果你将「日」字段设为「1W」, 而一号又是周六, 触发器会于下周一也就是当月的 3 号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于「日」字段的值为单独的一天而不是一系列值的时候。
可用于「日」字段。含义为:「该月最后一个工作日」。
可以组合用于「日」字段表示为'LW'。含义为:「该月第几个周×」,如:「6#3」表示该月第三个周五( 6 表示周五而「#3」表示该月第三个)。注意如果你指定「#5」该月没有第五个「周×」,该月是不会触发的。
字符可用于「周几」字段。
注:对于「月份」字段和「周几」字段来说合法的字符都不是大小写敏感的。
下面列举一些完整的例子:
表达式 | 含义 |
---|---|
0 0 12 * * ? | 每天中午十二点触发 |
0 15 10 ? * * | 每天早上 10:15 触发 |
0 15 10 * * ? | 每天早上 10:15 触发 |
0 15 10 * * ? * | 每天早上 10:15 触发 |
0 15 10 * * ? 2005 | 005 年的 每天早上 10:15 触发 |
0 * 14 * * ? | 每天从下午 2 点开始到 2 点 59 分每分钟一次触发 |
0 0/5 14 * * ? | 每天从下午 2 点开始到 2 点 55 分结束每 5 分钟一次触发 |
0 55/10 14,18 * * ? | 每天的下午 2 点 55 和 6 点 55 分触发 |
0 10,44 14 ? 3 WED | 三月的每周三的14:10和14:44触发 |
0 15 10 ? * MON-FRI | 每个周一、周二、周三、周四、周五的10:15触发 |
0 15 10 15 * ? | 每月 15 号的 10:15 触发 |
0 15 10 L * ? | 每月的最后一天的 10:15 触发 |
0 15 10 ? * 6L | 每月最后一个周五的 10:15 触发 |
0 15 10 ? * 6L 2002-2005 | 2002 年至 2005 年的每月最后一个周五的 10:15触发 |
0 15 10 ? * 6#3 | 每月的第三个周五的 10:15 触发 |
0 0 0 L-2 * ? * | 每月倒数第二天(支持FineReport 10.0,不支持FineReport 9.0) |