zoukankan      html  css  js  c++  java
  • corn表达式

    一. 概述

    corn表达式用来表示定时任务的执行频率和执行方式。

    二. 使用方法:

    1. 基本结构

    corn表达式分为七个部分,用空格翻开,从左到右的分别为:秒(second) 分(minute) 时(hour) 日(dayofmonth)  月(month) 周(dayofweek) 年(year)。可取值如下表:

    取值范围 允许的特殊字符
    秒(second) 0-59 -*/
    分(minute) 0-59 -*/
    时(hour) 0-23 -*/
    日(dayofmonth) 1-31 -*/?LWC
    月(month) 1-12或者JAN-DES -*/
    周(datofweek) 1-7或者SUN-SAT -*/?LC#
    年(year) 1970-2099 -*/

    其中,年可以省略。

    2. 特殊字符含义

    • “*”字符被用来指定所有的值。例如,要定义每天中午12点触发,则corn表达式为:“0 0 12 * * ?*”。
    • “?”字符被用来指定不确定的值。例如,要定义“每周四中午12点触发”,则corn表达式为:“0 0 12 ? * 5 * ”。因为我们无法确定每周四是几号,所以“日”用?代替。
    • “-”字符被用来指定一个范围。例如,要定义“每周一到周五中午12点触发”,则corn表达式为:“0 0 12 ? * 2-6 *”
    • “/”字符被用于指定增量。例如,“0/15”在秒域意思是每分钟的0,15,30,45秒。“5/15”在分钟域表示每小时的5,20,35,50。符号“*”在“/”前面(如:*/10)等价于0在“/”前面(如:0/10)。
    • “,”字符被用来指定另外的值。例如,要定义“每周一周四的中午12点触发”,则corn表达式为:“0 0 12 ? * 2,5 *”
    • L字符被用来表示dayofmonth和dayofweek域,但在两个字段中的意思不同,例如,dayofmonth域中表示一个月的最后一天。如果在dayofweek域表示‘7’或者‘SAT’,如果在dayofweek域中前面加上数字,例如‘6L’就表示一个月的最后一个星期五。
    • 字符“W”只允许日期域出现。这个字符用于指定日期的最近工作日。例如:如果你在日期域中写 “15W”,表示:这个月15号最近的工作日。所以,如果15号是周六,则任务会在14号触发。如果15好是周日,则任务会在周一也就是16号触发。如果是在日期域填写“1W”即使1号是周六,那么任务也只会在下周一,也就是3号触发,“W”字符指定的最近工作日是不能够跨月份的。字符“W”只能配合一个单独的数值使用,不能够是一个数字段,如:1-15W是错误的。“L”和“W”可以在日期域中联合使用,LW表示这个月最后一周的工作日。
    • 字符“#”只允许在星期域中出现。这个字符用于指定本月的某某天。例如:“6#3”表示本月第三周的星期五(6表示星期五,3表示第三周)。“2#1”表示本月第一周的星期一。“4#5”表示第五周的星期三。
    • 字符“C”允许在日期域和星期域出现。这个字符依靠一个指定的“日历”。也就是说这个表达式的值依赖于相关的“日历”的计算结果,如果没有“日历”关联,则等价于所有包含的“日历”。如:日期域是“5C”表示关联“日历”中第一天,或者这个月开始的第一天的后5天。星期域是“1C”表示关联“日历”中第一天,或者星期的第一天的后1天,也就是周日的后一天(周一)。

    3. 常用表达式

    "0 0 12 * * ?" 每天中午12点触发
    "0 15 10 ? * *" 每天上午10:15触发
    "0 15 10 * * ?" 每天上午10:15触发
    "0 15 10 * * ? *" 每天上午10:15触发
    "0 15 10 * * ? 2005" 2005年的每天上午10:15触发
    "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
    "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
    "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
    "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
    "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2: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触发

  • 相关阅读:
    用 ArcMap 发布 ArcGIS Server FeatureServer Feature Access 服务 PostgreSQL 版本
    ArcMap 发布 ArcGIS Server OGC(WMSServer,MapServer)服务
    ArcScene 创建三维模型数据
    ArcMap 导入自定义样式Symbols
    ArcMap 导入 CGCS2000 线段数据
    ArcMap 导入 CGCS2000 点坐标数据
    ArcGis Server manager 忘记用户名和密码
    The view or its master was not found or no view engine supports the searched locations
    python小记(3)操作文件
    pytest(2) pytest与unittest的区别
  • 原文地址:https://www.cnblogs.com/LOVE0612/p/5679461.html
Copyright © 2011-2022 走看看