0

MngtImpl クラスの findItemByPIdEndDate() メソッドを 5000 ミリ秒ごとに呼び出す必要がありますが、何も起こっていないようです。何か不足していますか?

<bean id="findItemByPIdEndDate" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="MngtImpl"/>
  <property name="targetMethod" value="findItemByPIdEndDate"/>
  <property name="repeatInterval" value="50000"/>
</bean>

@matt b私はこれのいくつかを読んだことがあります..だから私はこれを持ってきました..そしてまたうまくいきません.今回は何が欠けていますか?

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

<bean id="compareDateTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail" ref="findItemByPIdEndDate" />
    <property name="startDelay" value="0" />
    <property name="repeatInterval" value="50000" />
</bean>
4

3 に答える 3

4

Quartz を機能させるには、それよりもはるかに多くの配管が必要です。を単独で宣言するだけMethodInvokingJobDetailFactoryBeanでは何も起こりません。

ただし、Quartz はこれに対してやり過ぎであり、Java5+ は単独でこれを行うことができます。MethodInvokingRunnableと組み合わせて、メソッドを定期的に呼び出すことができるSpring のScheduledExecutorFactoryBeanを読むことをお勧めします。

于 2009-10-22T11:57:12.417 に答える
4

この作業には、第 23 章スケジューリングとスレッド プーリングが役立ちます。とは言っても、ここに簡単な要約があります。

まず、あなたを定義しますJob

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

ここで、トリガーと を使用してジョブをスケジュールする必要がありますSchedulerFactoryBean。トリガーについては、あなたの場合に a を使用することをお勧めしSimpleTriggerBeanます:

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
  <!-- see the example of method invoking job above -->
  <property name="jobDetail" ref="findItemByPIdEndDate" />
  <!-- 10 seconds -->
  <property name="startDelay" value="10000" />
  <!-- repeat every 50 seconds -->
  <property name="repeatInterval" value="50000" />
</bean>

すべてを完成させるには、以下を設定しますSchedulerFactoryBean

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
    <list>
      <ref bean="simpleTrigger" />
    </list>
  </property>
</bean>
于 2009-10-22T12:53:17.657 に答える
0

これまでに行ったことは、MethodInvokingJobDetailFactoryBean() をインスタンス化することと同等です。基本的に、行ったことはジョブを作成したことだけです。ここで、スケジュール方法とトリガーの構成を設定する必要があります。

Spring マニュアルの Quartz のセクションを見てください。

于 2009-10-22T12:38:38.887 に答える