【问题标题】:cron expression for the last weekend of the month本月最后一个周末的 cron 表达式
【发布时间】:2014-07-30 14:17:15
【问题描述】:

我有一个工作要在该月的最后一个周末运行(即,如果该月最后一个星期天,它应该在星期日运行,如果该月结束或最后一个星期六,那么该工作应该运行星期六。 我没有找到任何文档来为这种情况构建 cron 表达式。

提前致谢。

【问题讨论】:

  • 使用这个简单的网站生成cron表达式cronmaker.com
  • @Girish 该网站没有提供当月最后一个周末的选项。
  • 我已经看到了,但我没有找到我想要的。为了更清楚地重建每月->最后->周末->每 1 个月的前景会议重复模式跨度>
  • 0 15 10 ? * 每个月最后一个周日上午 10:15 1L 火
  • 我不想只在星期天开火。它应该基于月份,例如 2015 年 1 月和 2 月,它应该在上周六运行,而 MAR 它应该在上周日运行

标签: java cron quartz-scheduler crontrigger


【解决方案1】:

您可以在星期几字段中使用L

0 0 0 ? * SUNL

这将在每个月的最后一个 SUN 触发,例如

Sunday, August 31, 2014 12:00 AM
Sunday, September 28, 2014 12:00 AM
Sunday, October 26, 2014 12:00 AM
Sunday, November 30, 2014 12:00 AM
Sunday, December 28, 2014 12:00 AM

我看不到指定一个月的最后一个周末的方法,因为石英不允许将 L 字符与一周中的多天组合。所以你不能做像SATL,SUNL 这样的事情。如果你想在每个最后一个 SAT 和 SUN 上触发一些东西,我会定义 2 个 cron 表达式。

来自quartz documentation(特殊字符)

L ("last") - .....
for example "6L" means "the last friday of the month". 

我用我的 cron 表达式视图测试了它——我为 eclipse 编写的一个插件 https://github.com/link-intersystems/eclipse-plugins-repository。或许对你也有用,

【讨论】:

  • 谢谢@rene 链接,但案例是在本月底的星期六或星期日运行
猜你喜欢
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2012-04-26
相关资源
最近更新 更多