Quartz入门学习

Quartz介绍:
Quartz是一个作业调度库,可以与几乎任何其他软件系统集成或一起使用。简而言之,job scheduler是一个服务组件,负责在预定(计划)时间到来时执行(或通知)其他软件组件。

Quartz作为一个包含所有核心Quartz功能的小型java库(.jar文件)进行分发。 此功能的主要接口(API)是Scheduler接口, 它提供简单的操作,例如调度/非调度作业,启动/停止/暂停调度程序。
 

准备工作:
1. 下载Quartz

2. 阅读Readme.txt,了解每个jar包的作用,将quartz.jar包和lib/下的几个jar包、以及相关依赖的jar包放在工程的classpath中

 

示例演示:
import java.util.Date;
import static org.quartz.JobBuilder.*;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;   
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
 
public class HelloQuartzScheduling {
    public static void main(String[] args)throws SchedulerException
     {
 
            SchedulerFactory schedulerFactory = new StdSchedulerFactory();
            Scheduler scheduler = schedulerFactory.getScheduler();
            
            JobDetail jobDetail = newJob(HelloQuartzJob.class)
                    .withIdentity("helloQuartzJob", Scheduler.DEFAULT_GROUP)
                    .build();
            
            //指定时间触发,每隔10秒执行一次,重复10次:
            SimpleTrigger simpleTrigger =  (SimpleTrigger) newTrigger()
                    .withIdentity("simpleTrigger", Scheduler.DEFAULT_GROUP)
                    .startAt(new Date(System.currentTimeMillis()))
                    .withSchedule(simpleSchedule().withIntervalInSeconds(10)
                    .withRepeatCount(10))   //设置重复10次,实际触发11次
                    .forJob("helloQuartzJob")
                    .build();
           
            scheduler.scheduleJob(jobDetail, simpleTrigger);
 
            scheduler.start();
        }
 
}
 

import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
 
public class HelloQuartzJob implements Job{
     public void execute(JobExecutionContext context) 
                throws JobExecutionException {
            System.out.println("Hello, Quartz! - executing its JOB at "+ new Date());
        }
}
HelloQuartzJob是一个实现了Job接口的类,Job接口只包含一个excute方法。触发Job的Trigger时,excute()方法会被scheduler的一个工作线程所调用。excute()方法的JobExecutionContext对象中保存着该Job运行时的部分信息、执行Job的scheduler的引用、触发Job的trigger的引用以及JobDetail对象的引用。

 

原文链接:https://blog.csdn.net/x41990/article/details/82905801

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值