2

我有一个简单的触发器 bean,应该每 20 分钟触发一次。为此,我在属性文件中指定了重复间隔值。但我的工作是每分钟而不是每 20 分钟醒来一次。

示例 xml

<bean id="propertyLoaderJob" 
      class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="propertyloader" />
        <property name="targetMethod" value="propFlagValidator" />
        <property name="concurrent" value="false" />
</bean>
<bean id="propertyLoaderTrigger"
    class="org.springframework.scheduling.quartz.SimpleTriggerBean">        
    <property name="jobDetail" ref="propertyLoaderJob" />
    <property name="repeatInterval" value="${quartz.scheduler.repeatInterval}" />
    <property name="startDelay" value="${quartz.scheduler.startDelay}" />       
</bean>

在属性文件中我有这些字段

quartz.scheduler.repeatInterval=1200000
quartz.scheduler.startDelay=1000

这可能是什么原因?请帮忙。提前致谢。

4

3 回答 3

0

您是否为此指定了属性占位符,

使用上下文命名空间,

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 . . .
 <context:property-placeholder location="quartz.scheduler.properties" />
 . . .
 </beans>

在应用程序上下文中添加 PropertyPlaceholderConfigurer bean

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 <property name="location">
 <value>classpath:quartz.scheduler.properties</value>
 </property>
</bean>
于 2012-10-12T09:40:38.843 回答
0

你确定你没有为同一个类/作业使用任何其他触发器,即propertyLoaderJob。您可能正在使用与同一作业相关的 cron 表达式。如果您可以共享完整的spring xml文件,那就太好了。

于 2012-10-12T10:09:10.090 回答
0

为了将来参考,我正在回答。

除了我的问题中提到的部分,我忘记添加以下代码。那是为了实际触发它:

<bean name="nonclusterMode"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">        
    <property name="triggers">
        <list>              
            <ref bean="propertyLoaderTrigger" />            
        </list>
    </property>
</bean>

现在它按预期工作。

于 2013-03-05T11:04:34.280 回答