2017-01-11 12 views
4

구성된 석영 작업을 사용하여 DB에Quartz 스케쥴러는 JdbcStore를

public static void schedule(IEntity entity, Date startdate) { 
    try { 
     JobDetail job = JobBuilder.newJob(StatingUpdateJob.class) 
       .withIdentity("UpdateStagingRecords" + entity.getId(), "StgToProduction").build(); 
     JobDataMap data = new JobDataMap(new HashMap<>()); 
     data.put("Entity", entity); 
     job.getJobBuilder().setJobData(data); 

     Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); 
     Date enddate = new Date(); 
     enddate.setTime(startdate.getTime() + 6000000); 
     CronTrigger cronTrigger = TriggerBuilder.newTrigger() 
       .withIdentity("UpdateStagingRecords" + entity.getId(), "StgToProduction").startAt(startdate) 
       .withSchedule(CronScheduleBuilder.cronSchedule("0 0/5 * 1/1 * ? *") 
         .withMisfireHandlingInstructionDoNothing()) 
       .endAt(enddate).build(); 
     Connection connection = DBConnectionManager.getInstance().getConnection("myDS"); 
     System.out.println(connection); 
     scheduler.scheduleJob(job, cronTrigger); 
     scheduler.start(); 
    } catch (Exception e) { 
     System.out.println("Something went wrong"); 
     e.printStackTrace(); 
    } 

} 

을 기록을 삽입 한 다음 내 클래스 경로에 quartz.properties을 배치

org.quartz.scheduler.instanceName=JavacodeGeeksScheduler 
org.quartz.scheduler.instanceId=99199 
org.quartz.scheduler.rmi.export=false 
org.quartz.scheduler.rmi.proxy=false 
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount=3 
org.quartz.context.key.QuartzTopic=QuartzPorperties 
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX 
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate 
org.quartz.jobStore.tablePrefix=QRTZ_ 
org.quartz.jobStore.dataSource=myDS 
org.quartz.jobListener.NAME.class=com.javacodegeeks.quartz.MyJobListener 
org.quartz.dataSource.myDS.driver=com.mysql.jdbc.Driver 
org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost/test 
org.quartz.dataSource.myDS.user=admin 
org.quartz.dataSource.myDS.password=admin 
org.quartz.dataSource.myDS.maxConnections=30 

내 작업이 성공적으로 생성 제대로 실행되지 않고있는 상태. 그러나 작업 세부 정보는 DB에 저장되지 않습니다. 여기 내 테이블 내가 구성해야 그 밖의 무엇 확실하지

enter image description here

입니다.

+0

구성에서 마지막 5 개의 속성이 고정 된 간격으로 구성 파일을 확인하는 데 사용됩니다. 확실하지는 않지만 사용하고 있습니까? 그렇지 않다면 주석을 달아보십시오. –

+0

@BilboBaggins 당신은 데이터 소스와 관련된 것들을 의미합니까? 이것이 DB 세부 정보를 제공 할 수있는 곳입니까? 그렇지 않니? 내가 틀렸다면 나를 바로 잡으십시오. –

+1

MYSQL에 어떤 버전과 옵션이 있는지 모르지만 대문자 문제와 관련이있을 수 있습니다. 테이블은 소문자 qrtz로 시작하며 구성에서이 QRTZ_가 있습니다. – pringi

답변

0

quartz datasource URL이 native jdbc url과 같지 않은 것은 이상한 일입니다. 나는 (@pringi@Bilbo 배긴스에 감사) IT 근무

jdbc:mysql://localhost:3306/test 

jdbc:mysql://localhost/test을 변경

.