Quartz - это мощная и продвинутая структура планировщика, помогающая разработчику Java планировать работу, выполняемую в определенные дату и время.
Из этого туториала Вы узнаете, как разработать задание планировщика с использованием Quartz 1.6.3.
1. Скачать Quartz
Вы можете получить библиотеку Quartz на сайте official или в центральном репозитории Maven.
Файл: pom.xml
<dependencies>
<!-- Quartz API -->
<dependency>
<groupId>opensymphony</groupId>
<artifactId>quartz</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.apache.commons.logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
2. Кварц Иов
Кварцевая работа определяется тем, что вы хотите запустить?
Файл: HelloJob
package com.mkyong.common;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job
{
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Hello Quartz!");
}
}
3. Кварцевый триггер
Кварцевый триггер определяется, когда Кварц будет работать над вашей работой выше кварца?
Есть два типа Кварцевых триггеров:
-
SimpleTrigger - позволяет установить время начала, время окончания, интервал повторения.
-
CronTrigger - Позволяет выражению Unix cron указывать даты и
раз запустить свою работу.
Выражение cron в Unix Выражение cron в Unix очень гибкое и мощное, вы можете узнать и увидеть множество примеров выражений cron на следующих сайтах.
SimpleTrigger - запускать каждые 30 секунд.
SimpleTrigger trigger = new SimpleTrigger();
trigger.setName("dummyTriggerName");
trigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
trigger.setRepeatCount(SimpleTrigger.REPEAT__INDEFINITELY);
trigger.setRepeatInterval(30000);
CronTrigger - запускать каждые 30 секунд.
CronTrigger trigger = new CronTrigger();
trigger.setName("dummyTriggerName");
trigger.setCronExpression("0/30 ** ** ** ** ?");
4. Планировщик
Класс планировщика связывает вместе « Job » и « Trigger » и выполняет его.
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
5. Полный пример
Вот два полных примера использования Quartz через SimpleTrigger и CronTrigger.
-
Пример SimpleTrigger ** + Выполнить очень 30 секунд с задержкой в 1 секунду в первый раз выполнения.
package com.mkyong.common;
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class SimpleTriggerExample
{
public static void main( String[]args ) throws Exception
{
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
//configure the scheduler time
SimpleTrigger trigger = new SimpleTrigger();
trigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
trigger.setRepeatCount(SimpleTrigger.REPEAT__INDEFINITELY);
trigger.setRepeatInterval(30000);
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
}
-
Пример CronTrigger ** То же самое, запускать задание каждые 30 секунд.
package com.mkyong.common;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;
public class CronTriggerExample
{
public static void main( String[]args ) throws Exception
{
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
CronTrigger trigger = new CronTrigger();
trigger.setName("dummyTriggerName");
trigger.setCronExpression("0/30 ** ** ** ** ?");
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
}
Скачать исходный код
Загрузите его - ссылка://wp-content/uploads/2010/04/QuartzExample.zip[QuartzExample.zip](14 КБ)
Рекомендации
ссылка://тег/java/[java]ссылка://тег/кварц/[кварц]ссылка://тег/планировщик/[планировщик]