【问题标题】:Cron expression for the second to last day of week of the month该月的第二周到最后一天的 Cron 表达式
【发布时间】:2017-11-30 19:25:17
【问题描述】:

我想触发该月的倒数第二天。

通常,这里是每月的最后一个星期五(例如:2017 年 6 月 30 日)

0 0 0 ? * FRIL 

我想要倒数第二个(例如:23/06/2017)

0 0 0 ? * FRIL-1 

但是这个语法返回的结果和以前一样(使用 Quartz 调度器和cronmaker

该月的倒数第二周可以出现在该月的第 3 周或第 4 周。 所以它是:

either : 0 0 0 ? * FRI#3 
or     : 0 0 0 ? * FRI#4 

你有什么建议吗?

【问题讨论】:

    标签: java cron quartz-scheduler crontrigger


    【解决方案1】:

    我认为您无法使用 cron 语法来表达这一点。
    不过,我可以想到一些解决方法:

    • 您可以在每周五安排您的工作,并有一些工作逻辑来检查它是否实际上是倒数第二个,然后再继续。

    • 另一种选择是为上周五创建一个虚拟 cron 触发器,检索“下一个触发时间”,从该日期减去 7 天,然后使用该确切日期创建实际触发器——但你会每周都必须这样做(通过预先安排多个触发器,或者让您的工作在每次运行后自行重新安排)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多