Spring @Scheduled注入延迟时间

时间:2010-12-07 21:17:26

标签: java spring quartz-scheduler

我有几个用

注释的方法
@Scheduled(fixedDelay = 6000)
private void myScheduledMethod(){
//do something
}

我还有一组属性文件,我在其中配置特定于环境的值。出于测试目的,我希望可以配置延迟的值,理想情况是通过属性文件中的属性。

由于fixedDelay的值必须是常量,我正在寻找一种从属性文件中获取此集的方法,但还没有找到方法。

2 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,但现在解决这个问题的最佳方法是:

@Scheduled(fixedDelayString = "${my.delay.property}")
public void myScheduledMethod(){
    // do something
}

答案 1 :(得分:5)

拥有此选项会很好,但我认为它不存在(注释是类级别的,而在创建实例时会注入值)。

为了使这个可配置使用xml命名空间<task:。与spring docs

中的示例相同
<task:scheduled-tasks scheduler="myScheduler">
    <task:scheduled ref="someObject" method="someMethod" 
         fixed-delay="${configuredDelay}"/>
</task:scheduled-tasks>