繁体   English   中英

如何在Spring中将Java Constant用作@Scheduler表达式注释的一部分?

[英]How to use Java Constant as a part of @Scheduler expression annotation in Spring?

我正在使用Spring调度程序。

 @Scheduled(fixedDelay = ((10 * 60 * 1000) / 2))
    public void runDynamic()
    {
      //doing my stuff
    }

现在假设我有一个像这样的常量

public static final Integer VARIANCE_TIME_IN_MIN = 10;

我想使用这个常量作为我的表达式的一部分,如下所示:

@Scheduled(fixedDelay = ((MyConstants.VARIANCE_TIME_IN_MIN * 60 * 1000) / 2))
public void runDynamic()
{
//doing my stuff
}

但它给出了我的编译时错误。 有任何想法吗? 提前致谢..!

Java注释采用编译时常量,定义为最终基元或字符串。

所以改变你的定义

   public static final int VARIANCE_TIME = 10;
   public static final long FIXED_DELAY = ((VARIANCE_TIME * 60 * 1000) / 2)

   @Scheduled(fixedDelay = FIXED_DELAY)
   public void runDynamic()      

使用属性文件中的cron表达式使用任务计划

@Scheduled(cron = "${cronTrigger.expression}")
public void runDynamic()
    {
      //doing my stuff
    }

在XML文件中配置:

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="exampleJob" />
    <!-- run every morning at 6 AM -->
    <property name="expression" value="0 0 6 * * ?" />
</bean>

link1doc可能对您有所帮助

您还可以动态地(编程)创建塔什计划作为解释这里

private static final long VARIANCE_TIME_IN_MIN = 10l;

@Scheduled(fixedDelay = ((VARIANCE_TIME_IN_MIN * 60 * 1000) / 2))
public void runDynamic() {
    // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM