Quartz研究报告

Quartz研究报告

 

Quartz是一个开源的任务调度框架。

1.           任务定义

继承Job接口,实现Jobexecute方法。

代码示例:

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

 

/**

 * @author livingbody

 *

 */

public class Myjob implements Job {

 

    public void execute(JobExecutionContext arg0) throws JobExecutionException {

       System.out

              .println("=================================hello, just job test");

    }

 

}

 

2.           运行任务

创建任务后比如来运行它,运行的时候类似于线程,必须给主线程一定的休眠时间,好让任务在此期间运行完毕。

代码示例:

 

import java.util.Date;

 

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerException;

import org.quartz.SchedulerFactory;

import org.quartz.SimpleTrigger;

import org.quartz.TriggerUtils;

import org.quartz.impl.StdSchedulerFactory;

 

public class JobRun {

 

    public void run() throws SchedulerException, InterruptedException {

       SchedulerFactory sf = new StdSchedulerFactory();

       Scheduler sched = sf.getScheduler();

//获取scheduler引用

       Date runTime = TriggerUtils.getEvenMinuteDate(new Date());

//获取触发时间(下个整秒)

       JobDetail job = new JobDetail("job1", "group1", Myjob.class);

       SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1", runTime);

       sched.scheduleJob(job, trigger);

       sched.start();

       Thread.sleep(90L * 1000L);

       sched.shutdown(true);

 

    }

 

}

注:

Scheduler是一个管理计划任务的接口。并且通过注册JobDetailTrigger,可以自动启动或人工启动job

JobDetail用来描述一个工作实例的属性。一般包含jobname,以及所属的group,以及对应的jobClass

TriggerUtils是用来构造Trigger的一个常用类。有好多构造方法,用来构造Trigger

SimpleTrigger是一个具体的Trigger在给定的时间间隔用来启动JobDetail实例。

3.           Trigger

CronTrigger用来创建有规律的触发器。它有自己的表达式。

1

2

3

4

5

6

7

分钟

小时

 

 

 

0

0

12

*

*

?每天

 

 

 

 

 

 

 

 

 

Expression

 

Meaning

"0 0 12 * * ?"

 

Fire at 12pm (noon) every day

"0 15 10 ? * *"

 

Fire at 10:15am every day

"0 15 10 * * ?"

 

Fire at 10:15am every day

"0 15 10 * * ? *"

 

Fire at 10:15am every day

"0 15 10 * * ? 2005"

 

Fire at 10:15am every day during the year 2005

"0 * 14 * * ?"

 

Fire every minute starting at 2pm and ending at 2:59pm, every day

"0 0/5 14 * * ?"

 

Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day

"0 0/5 14,18 * * ?"

 

Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day

"0 0-5 14 * * ?"

 

Fire every minute starting at 2pm and ending at 2:05pm, every day

"0 10,44 14 ? 3 WED"

 

<sp

 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值