1

我正在使用 Spring 3.1.1.RELEASE 版本,并且有一些用@Scheduled 注释的计划任务,例如@Scheduled(cron = "0 0 15 * * 2")每周二 15:00

我需要对 cron 表达式进行更细粒度的控制以使其运行,例如:

  • 每月第二周和最后一周的星期一
  • 每个月的第一个星期一

我怎样才能做到这一点?

也许有一些 EL 表达式计算为同一 bean 中的方法,该方法返回所需的 cron 表达式作为字符串?

或者也许已经有某种方法可以在 cron 表达式中引入这种逻辑?

我试图在没有运气的情况下为这两种解决方案找到一些信息,所以我很感激一个好的指针。

谢谢

4

1 回答 1

0

也许有一些 EL 表达式计算为同一 bean 中的方法,该方法返回所需的 cron 表达式作为字符串?

如果您的主要问题是您想避免对 cron 进行硬编码,那么您可以从属性文件中获取它,如下所示:

@Scheduled(cron = "${my-schedule}")

其中my-schedule是属性文件中键的名称:

my-schedule=0 0 15 * * 2
于 2018-06-23T15:01:04.293 回答