使用属性文件中的cron表达式进行任务调度
我写了一个cron作业:使用属性文件中的cron表达式进行任务调度,cron,Cron,我写了一个cron作业: @Scheduled(cron="${process.virtual.account.start}") public void ecomProcessVirAccOrderPaymentsScheduler() { LOGGER.info("Start --->" + this.getClass().getCanonicalName() + ".ecomProcessVirAccOrderPaymentsScheduler() Method");
@Scheduled(cron="${process.virtual.account.start}")
public void ecomProcessVirAccOrderPaymentsScheduler() {
LOGGER.info("Start --->" + this.getClass().getCanonicalName() + ".ecomProcessVirAccOrderPaymentsScheduler() Method");
schedulerJobHelper.ecomProcessVirAccOrderPaymentsScheduler();
LOGGER.info("End --->" + this.getClass().getCanonicalName() + ".ecomProcessVirAccOrderPaymentsScheduler() Method");
}
我想从外部属性文件中获取与@Scheduled
注释一起使用的cron属性。目前,我正在从应用程序范围内的属性文件获取它。
我能够获取该值,但无法将其与
@Schedule
注释一起使用。您使用的是哪个版本的spring framework?如果小于3.0.1,则此选项无效
它已经在3.0.1中修复
所以,如果您使用的是Spring3.0.1或更高版本,那么在cron表达式中必须执行以下操作
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:ApplicationProps.properties</value>
</list>
</property>
</bean>
注意:固定延迟和固定速率不能从占位符获取属性值,因为它们获取长值。Cron属性将参数作为字符串,这样您就可以使用占位符了
@Configuration
@PropertySource("/path/to/file")
public class LoadPropertiesFile{
//Other project configurations
}
更多信息,请参见这里的您可以直接从属性文件分配值,顺便说一句,我使用的是spring boot
@Scheduled(cron = "${com.oracle.fusion.cron}")
public void getInvoiceInterfaceHeader() {
}
它在弹簧靴中工作
@Scheduled(cron="${cronExpression}")
private void testSchedule() {
System.out.println("Helloooo");
}
在application.properties
中,我有如下属性:
cronExpression=* * * ? * *
对我来说,工作就是这样:
"#{${cronExpression}}
从Spring 3.2.2开始,您现在有:以及。
"#{${cronExpression}}