Учебник по планированию Quartz 1.6

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]ссылка://тег/кварц/[кварц]ссылка://тег/планировщик/[планировщик]