2011-01-24 3 views
3

私の仕事は、GUIからユーザが指定したスケジュールされた時間を使ってレポートを動的に生成することです。私は毎日午前6時のレポートを生成するために春に自分のアプリケーションのアプリケーションコンテキストに次のコードを使用していますSpringで同じジョブの詳細を使用してCronTriggerBeanを動的に再調整する

<bean name="scheduleRptJob" class="org.springframework.scheduling.quartz.JobDetailBean"> 
    <property name="jobClass" value="com.secant.qatool.report.scheduler.ScheduleCroneJob"/> 
</bean> 

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="scheduleRptJob" /> 

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

私はcronの式を動的に変化していますコントローラから次のコードを入力します。しかし、それは動作していません。

String time[] = rptScheduleTime.split(":"); 

    String hours = time[0]; 
    String minutes = time[1]; 

    String croneExp = " 00 " + minutes + " " + hours + " * * ? "; 

    log.debug("CRONE EXP :: " + croneExp); 

    cronTrigger.clearAllTriggerListeners(); 

    // Setting the crown expression. 
    cronTrigger.setCronExpression(croneExp); 

    Trigger[] triggers = {cronTrigger}; 

    // Code to pause and start the cron trigger. 
    schedulerFactory.stop(); 
    schedulerFactory.setTriggers(triggers); 
    schedulerFactory.start(); 

動的な時間を使って同じジョブを再スケジュールする方法を教えてください。

おかげで、

-Anil Kumar.C

答えて

4

がこの程度春のフォーラムでスレッドがあり、そしてそれは彼らがあなたの問題の解決策を見つけた縫い目:http://forum.springsource.org/showthread.php?t=31736

代わりの手動ファイル内のcron式を変更して、バネ式言語を使用して、値を保持しているオブジェクトから読み込むことができます。

1

私はthisスレッドでDBからcron exprを読み込んだ後、ジョブのスケジュールを変更しました。あなたはDBからそれを読み取ることはできませんが、あなたが望むようにGUIから直接渡します。

関連する問題