• quartz cron表达式


    Cron表达式是由6所需的字段和一个可选字段由空格分隔

    Cron表达式的格式:秒 分 时 日 月 周 年(可选)

    Field Name Allowed Values Allowed Special Characters
    Seconds   0-59   , - * /
    Minutes   0-59   , - * /
    Hours   0-23   , - * /
    Day-of-month   1-31   , - * ? / L W
    Month   1-12 or JAN-DEC   , - * /
    Day-of-Week   1-7 or SUN-SAT   , - * ? / L #
    Year (Optional)   empty, 1970-2199   , - * /

    “*”字符被用来指定所有的值。如:"*"在分钟的字段域里表示“每分钟”。

    “?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置一个问号.

    “-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。"0 0 9 ? * 2-6" 周一到周五每天上午9点

    “,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”。

    “/”字符用于指定增量。如:“0/15”在秒域意思是每分钟的0,15,30和45秒。“5/15”在分钟域表示每小时的5,20,35和50。符号“”在“/”前面(如:/10)等价于0在“/”前面(如:0/10)。记住一条本质:表达式的每个数值域都是一个有最大值和最小值的集合,如:秒域和分钟域的集合是0-59,日期域是 1-31,月份域是1-12。字符“/”可以帮助你在每个字符域中取相应的数值。如:“7/6”在月份域的时候只有当7月的时候才会触发,并不是表示每个6月。

    L是‘last’的省略写法,在day-of-month和day-of-week域两个字段中意思不同,例如day-of- month域中表示一个月的最后一天("0 15 10 L * ?"每月最后一日的上午10:15触发)。如果在day-of-week域表示‘7’或者‘SAT’,如果在day-of-week域中前面加上数字,它表示一个月的最后星期几,例如‘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”表示第五周的星期三。(用在母亲节和父亲节再合适不过了)

     小提示:
     周字段的设置,若使用英文字母是不区分大小写的 MON 与mon相同.

    例子列举:

    "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触发

  • 相关阅读:
    php获取文件后缀名格式
    猴子分桃问题2
    猴子吃桃问题1
    判断字符串中字母出现的次数用分割法
    成绩表
    二维数组所有元素求和输出
    冒泡排序
    1.8作业
    1.8
    1.6
  • 原文地址:https://www.cnblogs.com/samwang88/p/6268671.html
Copyright © 2020-2023  润新知