2015-07-14 8 views
0

Я новичок в JSP и Quartz Scheduling! В этом проекте я пытаюсь заставить планировщик кварца продолжать работать, если сервер выключен, а затем игнорирует пропущенные задания.Ошибка кварца при восстановлении работы

Для этого я исследовал JobPersistence и я изменил файл quartz.properties как следующее:

org.quartz.threadPool.threadCount=5 
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX 
org.quartz.jobStore.tablePrefix = QRTZ_ 
org.quartz.jobStore.useProperties = true 
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 
org.quartz.jobStore.dataSource = myDB 
org.quartz.dataSource.myDB.driver = com.mysql.jdbc.Driver 
org.quartz.dataSource.myDB.URL = jdbc:mysql://localhost:3306/contacts 
org.quartz.dataSource.myDB.user = root 
org.quartz.dataSource.myDB.password = root 

файл web.xml содержит следующее:

... 
<listener> 
    <listener-class> 
    org.quartz.ee.servlet.QuartzInitializerListener 
    </listener-class> 
</listener> 
... 

Я добавил таблицы в БД, и когда я выбираю, я вижу, что он действительно вставил триггеры в свои таблицы.

Триггер построен как:

Trigger trig = TriggerBuilder 
.newTrigger() 
.startAt(scal.getTime()) 
.withSchedule(
    SimpleScheduleBuilder.simpleSchedule() 
    .withIntervalInMinutes(minutes).repeatForever()) 
    .endAt(ecal.getTime()).build(); 

Теперь, когда я бегу мое веб-приложение, я запланировать задание и выполняет. Затем выключите сервер tomcat и запустите его снова. Он печатает следующее сообщение об ошибке в регистраторе:

org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't recover jobs: null [See nested exception: java.lang.NullPointerException]]

Я попытался выполнением следующего заявления один раз в MySQLWorkbench:

UPDATE QRTZ_TRIGGERS SET NEXT_FIRE_TIME=1 WHERE NEXT_FIRE_TIME < 0;

Теперь я получил эту новую ошибку:

.manage - MisfireHandler: Error handling misfires: Unexpected runtime exception: null

org.quartz.JobPersistenceException: Unexpected runtime exception: null [See nested exception: java.lang.NullPointerException]

Если вы хотите, чтобы я редактировать и включать StackTrace, я могу сделать это ...

ответ

3

Вы можете использовать в свойствах файла

org.quartz.scheduler.misfirePolicy = doNothing 

Поскольку очевидно упущенная работа вызывает вас проблемы ...

Я знаю, что это старый пост, но если у вас есть ответ, пожалуйста, поделитесь им со всеми нами!

+0

На самом деле мне не нужно было устанавливать какие-либо настройки, хотя ваш комментарий показал, что я могу следовать ... Мне пришлось вручную выполнить sql-скрипт, хранящийся в решении ... тогда он сработал ... – Darkglow

Смежные вопросы