2012-02-21 18 views
2

Quartz TriggerStateのenum状態は何を表し、どのように設定されますか?Quartz TriggerStateのenum状態は何を表していますか?

私はスケジュールされたジョブを実行するために使用されるSpring 3.1 Quartz 2.0.1ユーティリティを持っています。私の仕事は固定された回数だけ繰り返されます。すべてのジョブが完了したらTriggerStateが完了することを期待します。しかし、私はそれがNORMALからNONEに変わっていくのを見て、私はCOMPLETEを見ません。私はTriggerStateの動作に関する多くのドキュメントを見つけることができませんでした。

関連するJavaコード:春のXMLで

SchedulerFactory schedFactory = new StdSchedulerFactory(); 

Scheduler scheduler = = schedFactory.getScheduler(); 
scheduler.scheduleJob(jobDetail, trigger); 
scheduler.start(); 

while (System.in.available() == 0) { 
    // Get trigger state 
    TriggerState triggerState = scheduler.getTriggerState(triggerKey); 
    if ((triggerState == TriggerState.COMPLETE)) { 
     break; 
    } 
    // Sleep for 100 msec 
    Thread.sleep(SCHEDULER_SLEEP_TIME); 
} 

ジョブ構成:TriggerStateはCOMPLETE状態になり、その後、すぐにすべてから削除されたよう

<bean id="mockJobDetail" 
     class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> 
    <property name="jobClass" 
      value="mypackage.MockJob"/> 
</bean> 

<bean id="simpleMockJobTrigger" 
     class="org.quartz.impl.triggers.SimpleTriggerImpl" > 
    <property name="name" value="simpleMockJobTrigger" /> 
    <!-- run every 50 milliseconds and start immediately, run 3 times --> 
    <property name="repeatInterval" value="50" /> 
    <property name="startTime"> 
    <bean factory-bean="dateFormat" factory-method="parse"> 
     <constructor-arg value="2012-01-01" /> 
    </bean> 
    </property> 
    <property name="repeatCount" value="2" /> 
</bean> 

答えて

2

コードを見てからは、それが見えますハッシュマップを追跡する。そのため、scheduler.getTriggerState(triggerKey)TriggerState.NONEを返します。triggerKeyに対応するトリガーが存在しない場合、この状態が返されます。

if ((triggerState == TriggerState.COMPLETE) || (triggerState == TriggerState.NONE)) { // do stuff }

OR

をトリガが完了した何かをするカスタムTriggerListenerを使用する:だから

、トリガーの完了を確認するため、行うことが可能です。

関連する問題