【问题标题】:Quartz cron expression for Once in a two week on particular dayQuartz cron 表达式在特定日期的两周内一次
【发布时间】:2016-08-07 02:38:21
【问题描述】:

我正在尝试创建在给定日期每 2 周运行一次的 Quartz cron 表达式

例如

每两周的星期一一次

并使用以下表达式

0 0 6 ? * 1#2,1#4

但不知何故我得到以下错误

不支持指定多个“nth”天。

【问题讨论】:

    标签: java quartz-scheduler


    【解决方案1】:

    这对于常规的 cron 作业来说也是非常困难的,我认为它无法在“正常”的 cron 表达式中实现。

    您可以完全跳过 cron 并使用 Trigger That Executes Every 2 Weeks

    trigger = newTrigger()
    .withIdentity("trigger3", "group1")
    .startAt(tomorrowAt(15, 0, 0)  // 15:00:00 tomorrow
    .withSchedule(calendarIntervalSchedule()
            .withIntervalInWeeks(2)) // interval is set in calendar weeks
    .build();
    

    【讨论】:

      【解决方案2】:

      这是类 cron 表达式的限制。我想到的最佳解决方案是为该作业创建两个触发器,而不是尝试仅将其与 cron 表达式一起使用。

      【讨论】:

      • 这不是石英的限制,因为使用SimpleTriggers 可以很容易地表达这种行为(参见TriggerBuilder) - 正如@RobAu 提到的那样。这更像是一种类 cron 表达式的缺点。
      • 是的,你是对的,我的意思是 Cron 表达式的限制,现在要编辑它。
      猜你喜欢
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      相关资源
      最近更新 更多