我已经实现了从propery文件配置CronExpression,但是这个属性文件是apache-deltaspike.properties,它位于.jar文件中。我需要cron表达式从我的自定义配置文件:Deltaspike + Quartz + CronExcel自定义属性文件
import org.apache.deltaspike.core.api.config.PropertyFileConfig;
public class myOwnPropertyFileConfig implements PropertyFileConfig {
private static final long serialVersionUID = 1L;
@Override
public String getPropertyFileName() {
return "cfg/myOwnPropFile.properties";
}
@Override
public boolean isOptional() {
return false;
}
}
myOwnPropFile.properties
deltaspike_ordinal=500
property1=value1
property2=value2
QuartzJob=0 25 17 * * ?
工作:
@Scheduled(cronExpression = "{QuartzJob}")
public class MyQuartzJob implements Job {
//job code
}
一切进展很好,当我设置该属性:QuartzJob = 0 25 17 * *? 内apache-deltaspike.properties,但是当我在我自己的属性文件中设置它,我得到:
java.lang.IllegalStateException: No config-value found for config-key: QuartzJob
研究,我发现我的属性文件是由石英初始化以后马上装载,并解释了原因。现在,我阅读了Deltaspike文档,可以在我的属性文件中使用deltaspike_ordinal来随时加载我的属性文件。所以我试了一下,但似乎忽略了deltaspike_ordinal = 500,并且错误不断出现。
那么,有人知道如何解决这个问题吗? Deltaspike doc也提到了ConfigSource等,但它并不是很清楚,也没有例子。
在此先感谢!