0

我正在尝试在属性文件中动态加载一个键(有一个值)。这就是我想要做的。我有两台应用服务器 A 和 B。两台服务器上都有一个石英作业,每隔一小时运行一次,这会导致一些问题。为了解决这个问题,我想在属性文件中设置一个带有服务器名称(比如 serverA、serverB)的键,当我将石英计划传递给 cronbean(在 spring xml 中)时,我应该传递的值(这是来自的键属性文件)应该是动态的。我的意思是,如果主机名是服务器 A,那么服务器 A 的值应该从属性文件中加载,并且与服务器 B 相同。下面是代码段 -

**application-host.xml - Initialized hostname in spring context**

<bean id="hostname" factory-bean="localhost" factory-method="getHostName"/>
<bean id="localhost" class="java.net.InetAddress" factory-method="getLocalHost"/>

**application-quartz.xml - Place where am loading the quartz schedule**

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

    <property name="jobDetail" ref="job" />
    <property name="cronExpression" value="${  serverA / serverB  }" /> ** THIS IS WHERE I WANT TO SET OR LOAD PROPERTIES FROM THE FILE, BASED ON THE HOST NAME.
</bean>

**env-test.properties**

serverA = 0 0 3 * * ?
serverB = 0 0 5 * * ?

我知道其他方法,例如在启动应用服务器之前使用不同的时间表更新属性文件,但这有点冒险,因为在部署过程中可能会错过。感谢您是否可以帮助我找到更好的解决方案或回答这个问题。

谢谢,西里什。

4

0 回答 0