2015-07-24 9 views
2

Я включил кварц 2 и весну 4 с аннотацией maven и java (используя сервлет 3), также я использую плагин tomcat 7 maven для развертывания моего проекта, мой класс конфигурации кварца, как показано ниже:quartz Fire Job немедленно не работает

enter image description here

и мой класс работы определить просто как ниже:

enter image description here

затем я использовать кварцевый планировщик для использования огня спусковой крючок работу сразу, как показано ниже:

enter image description here

но моя проблема: когда я называю fireNow Methode с «job1», «MyGroup» Параметры ничего не происходит, и мой job1 не называйте сразу и ничего в консоли не печатать, я также отслеживать таблицы БД я заметил после запуска метода fireNow новой строки, вставленной в моей таблице qrtz_triggers в MySQL:

enter image description here

+0

Выполняется ли fireNow вообще. Это через некоторое время. Учитывали ли вы, что ввод/вывод базы данных может быть причиной задержки. Поскольку свойства Планировщика считываются из транзакции БД. – Acewin

+0

Вы могли загружать кварц из базы данных просто без какой-либо отдельной конфигурации в качестве того, что вы пытаетесь сделать здесь. – Acewin

ответ

1

Если Quartz планировщик не запускается автоматически. Вам нужно запустить его явно.

scheduler.start(); 

Если Quartz планировщик начал успешно, вы должны увидеть информацию в своем журнале или консольный вывод аналогичный, как показано ниже.

[главную] INFO org.quartz.core.QuartzScheduler - Планировщик мета-данные: Кварц планировщик (v2.2.1)
'org.springframework.scheduling.quartz.SchedulerFactoryBean # 0' с 'InstanceId MyScheduler'
Планировщик class: 'org.quartz.core.QuartzScheduler' - выполняется локально.
НЕ НАЧАЛО.
В настоящее время находится в режиме ожидания.
Количество выполненных работ: 0

Использование пула потоков 'org.quartz.simpl.SimpleThreadPool' - с 10 потоками.
Использование магазина заданий «org.quartz.simpl.RAMJobStore» - который не поддерживает постоянство. и не кластеризуется.
...
[главный] INFO org.quartz.core.QuartzScheduler - начал

+0

Я использовал scheduler.start(), прежде чем запускать свою работу, но ничего не происходит. Думаю, я пропустил какую-то конфигурацию для интеграции кварца и весны с конфигурацией java, что-то вроде Spring applicationContex, я прав?i вещь весна не знает о моем кварцевом планировщике, также моя конфигурация cronTrigger не работает вообще – hadi

+0

Просто обратите внимание на ваш cron «0 0/5 * 1/1 *? *», ваша работа должна быть запущена в первый день месяца. Если вы хотите, чтобы ваша работа срабатывала каждый день, измените ее на «0 0/5 * * *? *». В выводе журнала или консоли вы должны увидеть информацию о запуске Quartz, если начался Quartz. –

0

Наконец я нашел решение моей проблемы, после включения кварца log4j (добавление log4j.logger.org.quartz = DEBUG в моем log4j .properties), я видел исключение jdbc в консоли, исключение, связанное с использованием устаревшего кварцевого запроса.

Я добавил зависимость кварца 2.2.1 в моей POM, но я использовал quartz sql query для версии 2.1.7 и что несоответствие между кварцевой баночкой и кварцевой версией запроса sql вызывает отсутствие некоторой таблицы, такой как SCHED_TIME.

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