私はSpring quartz Schedulerを使用していますが、私はXMLファイルを使用していません。プログラム全体で構成全体を作成したいと思います。プログラムでトリガオブジェクトを作成するには?
私は次のコードを書いています。
package com.eaportal.service.impl;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.quartz.JobDetail;
import org.springframework.scheduling.SchedulingException;
import org.springframework.scheduling.quartz.CronTriggerBean;
import org.springframework.scheduling.quartz.JobDetailBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import com.eaportal.service.intfc.AuctionWinnerService;
public class NormalAuctionWinnerServiceImpl1 implements AuctionWinnerService {
@SuppressWarnings("deprecation")
public void declareWinner(int auctionId, Map<String, Object> parameterMap) {
System.out.println("INSIDE DECLARE WINNER METHOD.");
/** STEP 1 : INSTANTIATE TASK CLASS **/
NormalAuctionWinnerTask1 runMeTask = new NormalAuctionWinnerTask1();
System.out.println("FINISHED STEP 1");
/** STEP 2 : INSTANTIATE JOB DETAIL CLASS AND SET ITS PROPERTIES **/
Map<String,Object> jobDataAsMap = new HashMap<String,Object>();
jobDataAsMap.put("runMeTask",runMeTask);
JobDetailBean jdb = new JobDetailBean();
jdb.setJobClass(NormalAuctionWinnerTask1.class);
jdb.setJobDataAsMap(jobDataAsMap);
System.out.println("FINISHED STEP 2");
/** STEP 3 : INSTANTIATE CRON TRIGGER AND SET ITS PROPERTIES **/
CronTriggerBean ctb = new CronTriggerBean();
Date d1 = new Date();
Date d2 = new Date();
d2.setMinutes(d1.getMinutes()+10);
ctb.setStartTime(d1);
ctb.setEndTime(d2);
ctb.setJobDetail(jdb);
try {
ctb.setCronExpression("59 * * * * ? *");
} catch (ParseException e) {
e.printStackTrace();
}
/** STEP 4 : INSTANTIATE SCHEDULER FACTORY BEAN AND SET ITS PROPERTIES **/
SchedulerFactoryBean sfb = new SchedulerFactoryBean();
sfb.setJobDetails(new JobDetail[]{jdb});
try {
sfb.start();
} catch (SchedulingException e) {
e.printStackTrace();
}
}
}
トリガー以外のコードは動作していますが、私は設定していません。
ここで問題はXML設定ではschedulerFactoryBeanの 'triggers'プロパティがあり、listを使用してトリガーを設定しています。
ただし、プログラムで同じプロパティを設定することはできません。 Trigger の配列を受け入れるSchedulerFactoryBeanにはsetTriggersメソッドがありますが、作成方法は問題です。
私は最後の4時間はまだ成功の兆候はありません。
誰かが私を助けることができますか?
おかげ
これはあなたの他の質問と少し似ています:http://stackoverflow.com/questions/4794560/quartz-integration-with-spring/ – Ralph
さて、そこには小さな違いがあります。これは、Quartzに対する春のサポートを使用し、もう1つはQuartzをサポートしません。私はあなたの提案を試してみました。他の質問に対しては朗報ですが、ログファイルにエラーはありませんでした。だから、私は春のサポートを使用するように切り替えましたが、今はこれで諦めています。私のアプローチが上記のコードに合っているかどうかを教えてください。トリガープロパティを設定する方法を教えてください。 – cyclecount