4

ジョブ「digestJob」の cronTrigger があります。

<bean id="digestCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="digestJob" />
    <property name="cronExpression" value="0 35 15 * * ?" />
</bean>

これが私の schedulerFactoryBean 構成です。

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

問題は、digestCronTrigger が毎日午後 5 時 35 分に 1 回起動されるはずなのに、指定された時間に 2 回起動されていることです。ただし、SimpleTrigger を使用すると:

<bean id="digestTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
        <property name="jobDetail" ref="digestJob" />
        <property name="startDelay" value="0" />
        <property name="repeatInterval" value="10000" />
    </bean>

すべてが正常に機能し、トリガーは 10 秒ごとに正確に 1 回起動されます。digestCronTrigger が 2 回起動されるのはなぜですか? cron 式に何か問題がありますか、または不足しているプロパティはありますか? どんな助けでも大歓迎です。

4

4 に答える 4

4

私はspringsourceフォーラムに同じ質問を投稿し、問題の背後にある原因を解明するための助けを得ました。アプリケーションコンテキストを2回ロードしていました。後で、この投稿から、コンテキストを2回ロードしないようにする方法を見つけました。今、物事はうまく機能しています。

于 2010-07-26T07:45:13.837 に答える
1

これは、アプリケーションの起動時にトリガーを作成し、quartz.properties ファイルでデータソースを使用している場合にも発生する可能性があります。サーバーを起動するたびに、新しいトリガーがQRTZ_CRON_TRIGGERSおよびQRTZ_TRIGGERSテーブルに書き込まれ、再起動するたびにそれらすべてが使用されます。

于 2016-06-30T18:07:17.773 に答える
0

これを試して:

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

    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <property name="targetObject" ref="actionObject" />
      <property name="targetMethod" value="actionMethod" />
    </bean>

    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobDetail"/>
        <property name="cronExpression" value="0 15 17 * * ?"/>
    </bean>
于 2010-07-20T18:19:55.887 に答える