Quartz_2.2.X学习系列十四:Example 1 - First Quartz Program

Think of this as a "Hello World" for Quartz

 

--------------------------------------------------------------------------------------------------------------

/*

 * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.

 *

 * Licensed under the Apache License, Version 2.0 (the "License"); you may not

 * use this file except in compliance with the License. You may obtain a copy

 * of the License at

 *

 *   http://www.apache.org/licenses/LICENSE-2.0

 *  

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT

 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the

 * License for the specific language governing permissions and limitations

 * under the License.

 *

 */

 

package org.quartz.examples.example1;

 

import java.util.Date;

 

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

 

/**

 * <p>

 * This is just a simple job that says "Hello" to the world.

 * </p>

 *

 * @author Bill Kratzer

 */

public class HelloJob implements Job {

 

    private static Logger _log = LoggerFactory.getLogger(HelloJob.class);

 

    /**

     * <p>

     * Empty constructor for job initilization

     * </p>

     * <p>

     * Quartz requires a public empty constructor so that the

     * scheduler can instantiate the class whenever it needs.

     * </p>

     */

    public HelloJob() {

    }

 

    /**

     * <p>

     * Called by the <code>{@link org.quartz.Scheduler}</code> when a

     * <code>{@link org.quartz.Trigger}</code> fires that is associated with

     * the <code>Job</code>.

     * </p>

     *

     * @throws JobExecutionException

     *             if there is an exception while executing the job.

     */

    public void execute(JobExecutionContext context)

        throws JobExecutionException {

 

        // Say Hello to the World and display the date/time

        _log.info("Hello World! - " + new Date());

    }

 

}

--------------------------------------------------------------------------------------------------------------

 

--------------------------------------------------------------------------------------------------------------

/*

 * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.

 *

 * Licensed under the Apache License, Version 2.0 (the "License"); you may not

 * use this file except in compliance with the License. You may obtain a copy

 * of the License at

 *

 *   http://www.apache.org/licenses/LICENSE-2.0

 *  

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT

 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the

 * License for the specific language governing permissions and limitations

 * under the License.

 *

 */

 

package org.quartz.examples.example1;

 

import static org.quartz.DateBuilder.evenMinuteDate;

import static org.quartz.JobBuilder.newJob;

import static org.quartz.TriggerBuilder.newTrigger;

 

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.Trigger;

import org.quartz.impl.StdSchedulerFactory;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

import java.util.Date;

 

/**

 * This Example will demonstrate how to start and shutdown the Quartz scheduler and how to schedule a job to run in

 * Quartz.

 *

 * @author Bill Kratzer

 */

public class SimpleExample {

 

  public void run() throws Exception {

    Logger log = LoggerFactory.getLogger(SimpleExample.class);

 

    log.info("------- Initializing ----------------------");

 

    // First we must get a reference to a scheduler

    SchedulerFactory sf = new StdSchedulerFactory();

    Scheduler sched = sf.getScheduler();

 

    log.info("------- Initialization Complete -----------");

 

    // computer a time that is on the next round minute

    Date runTime = evenMinuteDate(new Date());

 

    log.info("------- Scheduling Job  -------------------");

 

    // define the job and tie it to our HelloJob class

    JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();

 

    // Trigger the job to run on the next round minute

    Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();

 

    // Tell quartz to schedule the job using our trigger

    sched.scheduleJob(job, trigger);

    log.info(job.getKey() + " will run at: " + runTime);

 

    // Start up the scheduler (nothing can actually run until the

    // scheduler has been started)

    sched.start();

 

    log.info("------- Started Scheduler -----------------");

 

    // wait long enough so that the scheduler as an opportunity to

    // run the job!

    log.info("------- Waiting 65 seconds... -------------");

    try {

      // wait 65 seconds to show job

      Thread.sleep(65L * 1000L);

      // executing...

    } catch (Exception e) {

      //

    }

 

    // shut down the scheduler

    log.info("------- Shutting Down ---------------------");

    sched.shutdown(true);

    log.info("------- Shutdown Complete -----------------");

  }

 

  public static void main(String[] args) throws Exception {

 

    SimpleExample example = new SimpleExample();

    example.run();

 

  }

 

}

 

--------------------------------------------------------------------------------------------------------------

Executing result:

15:42:46.041 INFO  org.quartz.examples.example1.SimpleExample 45 run - ------- Initializing ----------------------

15:42:46.255 INFO  org.quartz.impl.StdSchedulerFactory 1172 instantiate - Using default implementation for ThreadExecutor

15:42:46.262 INFO  org.quartz.simpl.SimpleThreadPool 268 initialize - Job execution threads will use class loader of thread: main

15:42:46.295 INFO  org.quartz.core.SchedulerSignalerImpl 61 <init> - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl

15:42:46.297 INFO  org.quartz.core.QuartzScheduler 240 <init> - Quartz Scheduler v.2.2.3 created.

15:42:46.300 INFO  org.quartz.simpl.RAMJobStore 155 initialize - RAMJobStore initialized.

15:42:46.302 INFO  org.quartz.core.QuartzScheduler 305 initialize - Scheduler meta-data: Quartz Scheduler (v2.2.3) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'

  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.

  NOT STARTED.

  Currently in standby mode.

  Number of jobs executed: 0

  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.

  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

 

15:42:46.304 INFO  org.quartz.impl.StdSchedulerFactory 1327 instantiate - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'

15:42:46.305 INFO  org.quartz.impl.StdSchedulerFactory 1331 instantiate - Quartz scheduler version: 2.2.3

15:42:46.307 INFO  org.quartz.examples.example1.SimpleExample 51 run - ------- Initialization Complete -----------

15:42:46.312 INFO  org.quartz.examples.example1.SimpleExample 56 run - ------- Scheduling Job  -------------------

15:42:46.341 INFO  org.quartz.examples.example1.SimpleExample 66 run - group1.job1 will run at: Sun Aug 12 15:43:00 CST 2018

15:42:46.342 INFO  org.quartz.core.QuartzScheduler 575 start - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.

15:42:46.343 INFO  org.quartz.examples.example1.SimpleExample 72 run - ------- Started Scheduler -----------------

15:42:46.344 INFO  org.quartz.examples.example1.SimpleExample 76 run - ------- Waiting 65 seconds... -------------

15:43:00.027 INFO  org.quartz.examples.example1.HelloJob 65 execute - Hello World! - Sun Aug 12 15:43:00 CST 2018

15:43:51.346 INFO  org.quartz.examples.example1.SimpleExample 86 run - ------- Shutting Down ---------------------

15:43:51.347 INFO  org.quartz.core.QuartzScheduler 694 shutdown - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.

15:43:51.349 INFO  org.quartz.core.QuartzScheduler 613 standby - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.

15:43:51.840 INFO  org.quartz.core.QuartzScheduler 771 shutdown - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.

15:43:51.842 INFO  org.quartz.examples.example1.SimpleExample 88 run - ------- Shutdown Complete ----------------

猜你喜欢

转载自blog.csdn.net/arnolian/article/details/82556587