1. Общие интерфейсы:
1. Интерфейс задания: есть только один метод для этого интерфейса
void execute (jobExecutioncontext context)
Разработчик реализует этот интерфейс, чтобы определить задачи, которые необходимо выполнить. Класс JobExeCutionContext предоставляет различную информацию о контексте планирования.
2. JobDetail: используется для описания классов реализации работы и некоторой другой статической информации
3. Триггер: Опишите правила запуска времени для запуска выполнения задания
4. Календарь: определяет пространство во времени, которое может (или невозможно) триггеры в связи с триггером. Он не определяет реальное время триггера, но используется, когда нормальный график должен ограничить триггер. Большинство календарей содержат все время по умолчанию, и пользователь исключает некоторое время.
5. Scheduler: запустите контейнер и используйте SchedulerFactory для создания экземпляра планировщика
2. Пример кода:
1. При использовании кварца вам необходимо реализовать интерфейс задания;
public class testjob реализует job {public void execute (jobexecutycontext context) throws jobexecutionexception {System.out.println ("Hello World! -" + new Date ()); // делать больше ...}}2. Планирование [это относительно просто, просто посмотрите на код]
открытый класс quartztest {public static void main (String args []) Throws predulerException, parseException {jobdetail jobdetail = jobbuilder.newjob (testjob.class). без проживания ("testjob_1", "Group_1") .build (); Trigger Trigger = TriggerBuilder .newTrigger (). Withidentity ("Trigger_1", "Group_1") .StartNow (). Withschedule (simpleschedulebuilder.simpleschedule (). WithIntervalinseconds (10) // Время времени. В течение всего времени (5). .строить(); SchedulerFactory sf = new StdschedulerFactory (); Scheduler share = sf.getscheduler (); ched.schedulejob (jobdetail, trigger); ched.start (); }}Вот версия 2.2.1, см. Примеры официальной документации. Я видел, что некоторые справочники используются в более старых версиях, поэтому есть некоторые различия. Многие методы устарели, поэтому напрямую читать документы более реалистично. Официальный адрес веб-сайта Quartz: http://www.quartz-scheduler.org/
Iii. Quartz2.2.1 Пример конфигурации
# Файл свойств по умолчанию для использования с помощью StdschedulerFactory# для создания экземпляра кварцевого планировщика, если другой файл# свойства не указан явно. falsorg.quartz.scheduler.rmi.proxy: falseorg.quartz.scheduler.wrapjobexecutionInuserTransaction: false org.quartz.threadpool.class: org.quartz.simpl.simplethreadpoolorg.quartz.threadpool.threadcount: 10org.quartz.threadpool.threadpriority: 5org.quartz.threadpool.threadsinheritcontextclassloaderializingthread: true org.quartz.jobstore.misfirethrethreshold: 60000 # ================================================================================================== Jobstore #=============================================================================================== Конфигурация, сохранить данные в память#org.quartz.jobstore.class: org.quartz.simpl.ramjobstore#Постоянная конфигурация org.quartz.jobstore.class: org.quartz.impl.jdbcjobstore.jobstoretxorg.quartz.jobstore.driverdelegateclass: org.quartz.impl.jdbcjobstore.stdjdbcdelegateorg.quartz.jobstore.UsePorse.UsepRoperse.UsePorse.UsePorse.UsePorse.UsePorse.UsePorse.UsePorse.UsePors org.quartz.jobstore.tableprefix: qrtz_org.quartz.jobstore.datasource: qzds #============================================================================== ================================================================================= Настройте DataSources#======================================================================================================= org.quartz.datasource.qzds.driver: com.mysql.jdbc.driverorg.quartz.datasour ce.qzds.url: jdbc: mysql: // localhost: 3306/quartzdborg.quartz.datasource.qzds.user: rotorg.quartz.datasource.qzds.password: 123456org.quartz.datasource.qzds.maxconnection: 10
4. Связанная с базой данных
Постоянство требует создания кварцевых таблиц данных в соответствующей базе данных заранее. В пакете выпуска Quartz Docs/DBTables имеет сценарии SQL, соответствующие различным базам данных.
Например, вот MySQL:
Объяснение поля таблицы данных: