0

我有一种情况,我需要检查配置文件 maven 正在运行,然后根据我需要配置任务调度程序。有两个配置文件,一个是“全局”,另一个是“非全局”,我所做的是:

<task:scheduler id="customerPortalTaskScheduler" pool-size="1" />
    <task:scheduled-tasks scheduler="customerPortalTaskScheduler">
        <task:scheduled ref="SubscriptionService" method="updateNextDistributionDateForAllCurrentUsers" cron="${nhst.ncp.instance} == 'global' ? #{customerportal['globalUpdateDistributionDateServiceTuesday.CronTrigger']} : #{customerportal['updateDistributionDateServiceMondayThursday.CronTrigger']}" />
        <task:scheduled ref="SubscriptionService" method="updateNextDistributionDateForAllCurrentUsers" cron="${nhst.ncp.instance} == 'global' ? #{customerportal['globalUpdateDistributionDateServiceWednesday.CronTrigger']} : #{customerportal['updateDistributionDateServiceFriday.CronTrigger']}" />
        <task:scheduled ref="SubscriptionService" method="updateNextDistributionDateForAllCurrentUsers" cron="${nhst.ncp.instance} == 'global' ? #{customerportal['globalUpdateDistributionDateServiceThursday.CronTrigger']} : #{customerportal['updateDistributionDateServiceWeekend.CronTrigger']}" />
    </task:scheduled-tasks>

${nhst.ncp.instance} 是 Maven 配置文件的实例。它会说它是全球性的还是非全球性的。它确实工作正常,因为属性文件正在正确加载。

使用上述配置,我收到屏幕截图中的错误。在此处输入图像描述

任何想法如何解决这个问题?

4

1 回答 1

2

不要依赖激活的配置文件。依赖本地配置文件:

<context:property-placeholder ignore-resource-not-found="true" location="file:/etc/mumbojumbo/app.config.properties"/>

在 /etc/mumbojumbo/app.config.properties

cron.schedule = blabla

您始终可以提供一个合理的默认值。所以你只需要在你想要的地方覆盖它。

<task:scheduled ref="SubscriptionService" method="updateNextDistributionDateForAllCurrentUsers" cron="${cron.schedule:defaultvalue}" />

类似的东西?

于 2013-08-08T14:45:11.893 回答