【问题标题】:Spring Cron expressionSpring Cron 表达式
【发布时间】:2016-02-18 08:43:11
【问题描述】:

我需要 cron 表达式来每 10 次触发一次邮件。但是如果 10 号是周末(周六或周日),那么它必须在两天前触发(如果 10 号是周六,那么在周四,如果 10 号是周日,那么在周五)

请帮助。这是我的表达方式(0 0 12 10W 1/1 ? *)。它检查周末并在前一天触发。如何在两个工作日前解雇它

【问题讨论】:

  • 尝试使用-cronmaker.com
  • 我在 cronmaker 中尝试过,但找不到确切的表达式。

标签: spring cron quartz-scheduler


【解决方案1】:

我认为在你的情况下,这不能用 cron 表达式来完成。只需执行简单的 cron 表达式,该表达式将每天运行,并应检查日期是否为每月 10 日,并手动执行所有需要的检查。

【讨论】:

  • 谢谢。是的,这是做不到的。我在java中处理过
  • if (date.getDate() == 10 && calendar.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && calendar.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) { mailTrigger =真的; } else if (date.getDate() == 8 && calendar.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY) { mailTrigger = true; } else if (date.getDate() == 8 && calendar.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) { mailTrigger = true; }
【解决方案2】:

两个表达式怎么样?您可以使用0 0 0 10 * MON-FRI,它在工作日的 10 号触发,0 0 0 8 * THU-FRI 在周末的 10 号触发。这使得星期四和星期五是 8 号。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多