2016-10-27 6 views
0

私はQuartzで私の最初のスケジュールされたタスクを作成しています。私のプロジェクトでは、データをデータベースに格納する必要があります。私が使用してスケジューラ起動するためのQuartzトリガーがJobStoreTXで起動しない

scheduler = StdSchedulerFactory.getDefaultScheduler(); 
scheduler.start(); 

を私は手動でいくつかのレコードを作成し、私のデータベースでは、スケジューリング

package com.atlascopco.framework.schedule.jobs; 

import org.quartz.Job; 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 

public class StoredProcedureJob implements Job { 

    @Override 
    public void execute(JobExecutionContext context) throws JobExecutionException { 


     System.out.println("test"); 

    } 

} 

をテストするための簡単なジョブを作成しました。 JOB_DETAILS

SCHED_NAME JOB_NAME JOB_GROUP DESCRIPTION JOB_CLASS_NAME IS_DURABLE IS_NONCONCURRENT IS_UPDATE_DATA REQUESTS_RECOVERY JOB_DATA 
test test test test com.atlascopco.framework.schedule.jobs.StoredProcedureJob 1 1 1 1 NULL 

は、今私は、スケジューラ開始自分のアプリケーションを起動したときに

SCHED_NAME TRIGGER_NAME TRIGGER_GROUP JOB_NAME JOB_GROUP DESCRIPTION NEXT_FIRE_TIME PREV_FIRE_TIME PRIORITY TRIGGER_STATE TRIGGER_TYPE START_TIME END_TIME CALENDAR_NAME MISFIRE_INSTR JOB_DATA 
test test test test test test 1477559872000 NULL NULL WAITING SIMPLE 1477559872000 NULL NULL NULL NULL 

SIMPLE_TRIGGERS

SCHED_NAME TRIGGER_NAME TRIGGER_GROUP REPEAT_COUNT REPEAT_INTERVAL TIMES_TRIGGERED 
test test test 10 1000 0 

をトリガします。定期的にスケジューラーのログに新しい行が追加されます(エラーのみのデバッグメッセージはありません)。仕事を始めるにはどうしたらいいですか?

また、私がscheduler.getTriggerGroupNames()を行っているとき、リストは空です。

答えて

0

はクォーツ

JobDetail jobDetail = JobBuilder.newJob(StoredProcedureJob.class) 
        .withIdentity("dataJob", "dataJobGroup") 
        .storeDurably(true) 
        .requestRecovery(true) 
        .build(); 

      SimpleTrigger trigger = (SimpleTrigger) newTrigger() 
        .withIdentity("trigger1", "dataJobGroup") 
        .startNow() 
        .withSchedule(
          simpleSchedule().withIntervalInSeconds(1) 
            .repeatForever()).build(); 

      scheduler.scheduleJob(jobDetail, trigger); 
のAPIを使用して、データベース内のジョブを保存する方法を見つけた
関連する問題