【问题标题】:How to execute cron quartz for the first Saturday and the first Sunday of each month如何在每个月的第一个星期六和第一个星期日执行cronquartz
【发布时间】:2014-03-18 20:27:32
【问题描述】:

我试过了:

0 0 2 ? 1/1 SAT#1,SUN#1 *

但是结果是错误的(只出现在星期天):

  1. 2014 年 4 月 6 日星期日凌晨 2:00
  2. 2014 年 5 月 4 日星期日凌晨 2:00
  3. 2014 年 6 月 1 日星期日凌晨 2:00
  4. 2014 年 7 月 6 日星期日凌晨 2:00
  5. 2014 年 8 月 3 日星期日凌晨 2:00

我也试过:

0 0 2 1-7 * ? SAT,SUN 和很多变体,但都是无效语法。

正确的输出应该是:

  1. 2014 年 4 月 5 日星期六凌晨 2:00
  2. 2014 年 4 月 6 日星期日凌晨 2:00
  3. 2014 年 5 月 3 日星期六凌晨 2:00
  4. 2014 年 5 月 4 日星期日凌晨 2:00
  5. 2014 年 6 月 1 日星期日凌晨 2:00
  6. 2014 年 6 月 7 日星期六凌晨 2:00 . . . .

http://www.cronmaker.com/(漂亮的页面!)以来,我一直在进行所有测试,但均未成功。 问候

【问题讨论】:

    标签: date cron quartz-scheduler


    【解决方案1】:

    我也试过不成功。在我看来,Quartz Cron 有一些局限性。

    顺便说一句,你不能把你的 cron 分成两个不同的时间表吗?例如:

    0 0 2 ? 1/1 SAT#1 *
    0 0 2 ? 1/1 SUN#1 *
    

    【讨论】:

    • 谢谢巴勃罗·安纳亚。我需要一个声明。所以我试着做一个像 '0 0 2 1-7 * 的工作? SAT,SUN' 不成功。
    【解决方案2】:

    07 代表星期日。

    因此,从16 的数字固定为Monday,...,Saturday

    图形化:

     +---------------- minute (0 - 59)
     |  +------------- hour (0 - 23)
     |  |  +---------- day of month (1 - 31)
     |  |  |  +------- month (1 - 12)
     |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
     |  |  |  |  |
     *  *  *  *  *  command to be executed
    

    0 0 1-7 * 0,6 * 应该适合你。

    Cron

    【讨论】:

    • 这是一个不正确的答案。我正在使用quartz-scheduler.org,它的语法与原来的不同:'(。无论如何谢谢
    【解决方案3】:

    您必须将其拆分为 2 个 cron 表达式。来自文档(http://www.quartz-scheduler.org/api/2.2.0/org/quartz/CronExpression.html):

    如果使用“#”字符,则星期几字段中只能有一个表达式(“3#1,6#3”无效,因为有两个表达式)。

    【讨论】:

    • 谢谢您。我需要一个声明。所以我试着做一个像 '0 0 2 1-7 * 的工作? SAT,SUN' 不成功。
    【解决方案4】:

    Cron Quartz 绝对不允许在单个语句中执行此操作。我收到错误消息:“未实现对指定星期几和月份参数的支持。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      相关资源
      最近更新 更多