quartz-Example1 学习 - 一分钟之后运行Job

完成功能:一分钟之后调用Job

pom.xml文件配置

 <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
</dependency>

定义任务类

package com.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import java.util.Date;

/**
 * @author Duoduo
 * @version 1.0
 * @date 2017/4/24 21:57
 */
public class SimpleJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExeContext) throws JobExecutionException {
        System.out.println("**********************************");
        System.out.println(jobExeContext.getTrigger().toString()+" trigger time is :"+ (new Date()));
    }
}

定义执行任务类

package com.quartz;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Date;

/**
 * @author Duoduo
 * @version 1.0
 * @date 2017/4/24 22:41
 */
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 = DateBuilder.evenMinuteDate(new Date());

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

        // define the job and tie it to our HelloJob class
        JobDetail job = JobBuilder.newJob(SimpleJob.class).withIdentity("job1", "group1").build();

        // Trigger the job to run on the next round minute
        Trigger trigger = TriggerBuilder.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 -----------------");
    }

}

测试结果如下:

2017-04-24 23:19:58,839  INFO [main] (SimpleExample.java:20) - ------- Initializing ----------------------
2017-04-24 23:19:58,907  INFO [main] (StdSchedulerFactory.java:1184) - Using default implementation for ThreadExecutor
2017-04-24 23:19:58,916  INFO [main] (SimpleThreadPool.java:268) - Job execution threads will use class loader of thread: main
2017-04-24 23:19:58,932  INFO [main] (SchedulerSignalerImpl.java:61) - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
2017-04-24 23:19:58,934  INFO [main] (QuartzScheduler.java:240) - Quartz Scheduler v.2.2.1 created.
2017-04-24 23:19:58,935  INFO [main] (RAMJobStore.java:155) - RAMJobStore initialized.
2017-04-24 23:19:58,936  INFO [main] (QuartzScheduler.java:305) - Scheduler meta-data: Quartz Scheduler (v2.2.1) '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.

2017-04-24 23:19:58,936  INFO [main] (StdSchedulerFactory.java:1339) - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
2017-04-24 23:19:58,936  INFO [main] (StdSchedulerFactory.java:1343) - Quartz scheduler version: 2.2.1
2017-04-24 23:19:58,936  INFO [main] (SimpleExample.java:26) - ------- Initialization Complete -----------
2017-04-24 23:19:58,937  INFO [main] (SimpleExample.java:31) - ------- Scheduling Job  -------------------
2017-04-24 23:19:58,948  INFO [main] (SimpleExample.java:41) - group1.job1 will run at: Mon Apr 24 23:20:00 CST 2017
2017-04-24 23:19:58,948  INFO [main] (QuartzScheduler.java:575) - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
2017-04-24 23:19:58,948  INFO [main] (SimpleExample.java:47) - ------- Started Scheduler -----------------
2017-04-24 23:19:58,948  INFO [main] (SimpleExample.java:51) - ------- Waiting 65 seconds... -------------
2017-04-24 23:20:00,022  INFO [DefaultQuartzScheduler_Worker-1] (SimpleJob.java:21) - **********************************
2017-04-24 23:20:00,028  INFO [DefaultQuartzScheduler_Worker-1] (SimpleJob.java:22) - Job execute Trigger 'group1.trigger1':  triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: null trigger time is :Mon Apr 24 23:20:00 CST 2017
2017-04-24 23:21:03,954  INFO [main] (SimpleExample.java:61) - ------- Shutting Down ---------------------
2017-04-24 23:21:03,954  INFO [main] (QuartzScheduler.java:694) - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.
2017-04-24 23:21:03,955  INFO [main] (QuartzScheduler.java:613) - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.
2017-04-24 23:21:04,424  INFO [main] (QuartzScheduler.java:771) - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.
2017-04-24 23:21:04,424  INFO [main] (SimpleExample.java:63) - ------- Shutdown Complete -----------------

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值