用于cron表达式的Spring @Scheduled注释中的El表达式或逻辑

时间:2012-08-23 14:05:06

标签: spring cron scheduled-tasks

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

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

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

我怎样才能做到这一点?

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

或许已经有某种方法在cron表达式中引入这样的逻辑?

我试图找到一些没有运气的解决方案的信息,所以我很欣赏一个好的指针。

由于

1 个答案:

答案 0 :(得分:0)

  

也许在同一个bean中有一些EL表达式的计算结果等于返回字符串所需的cron表达式?

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

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

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

my-schedule=0 0 15 * * 2