2017-01-11 5 views
4

сконфигурированной Quartz работу,Quartz Scheduler не вставляя записей в БД с помощью 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 

Моя работа успешно создан и запуска правильно. Но, однако, детали задания не помещаются в БД. Вот мои таблицы

enter image description here

Не уверен, что еще я должен настроить.

+0

В конфигурации последние 5 свойств используются для проверки файла конфигурации с фиксированным интервалом, я не уверен, но вы используете его? Если нет, попробуйте прокомментировать их. –

+0

@BilboBaggins Вы имеете в виду материал, связанный с источником данных? Это место, где мы можем предоставить детали БД? Не так ли? исправьте меня, если я ошибаюсь –

+1

Не знаете, какую версию и параметры у вас есть для MYSQL, но это может иметь отношение к проблеме верхнего регистра. Ваши таблицы начинаются с строчного qrtz, и в вашей конфигурации у вас есть этот QRTZ_. – pringi

ответ

0

Странно, что URL-адрес источника данных кварца не принимается так же, как родной URL-адрес jdbc.

Когда я изменил jdbc:mysql://localhost/test на

jdbc:mysql://localhost:3306/test 

Сработало (благодаря @pringi и @Bilbo Бэггинс).