实践---Quartz

Quartz  
内的关键对象
Schedule,Job,Trigger,JobExecutionContext等对象


Quartz的使用:
1.导入Quartz所需的两个jar包  
                      quartz-2.2.1.jar
                      quartz-jobs-2.2.1.jar


2.创建Job类HelloJob进行简单的输出

package com.shenht.test;

import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

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

public class HelloJob implements Job{
    
    private static Logger _log = LoggerFactory.getLogger(HelloJob.class);
    
    //Job需要一个公有的构造方法,否则Factory无法构建

    public HelloJob(){

    }
    //实现execute()方法
    public void execute(JobExecutionContext context) throws JobExecutionException{
    	_log.info("Hello World!-"+new Date());
    }
}
3.创建自己定义的Job运行的例子,在下一分钟执行自己定义的Job

package com.shenht.test;

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.ScheduleFactory;
.
.
.

/*
 *
 *演示如何启动和关闭Quartz调度器,及如何运作
 *
 */
public class QuartzTest{
	public void run() throws Exception{
		Logger log = LoggerFactory.getLogger(QuartzTest.class);

		log.info("----- Initializing -----");
        //1.工厂模式  构建Scheduler的Factory,其中STD为Quartz默认的Factory,开发者亦可自行实现自己的Factory;Job,Trigger等组件
		ScheduleFactory sf = new StdSchedulerFactory();
        //2.通过SchedulerFactory构建Scheduler对象
		Scheduler     sched = sf.getScheduler();
        
		log.info("----- Initializing Complete -----");
        //3. org.quartz.DateBuilder.eventMinuteDate  --通过DateBuilder构建Date
        Date runTime = evenMinuteDate(new Date());

        log.info("----- Scheduling Job -----");
        //4. org.quartz.JobBuilder.newJob<下一分钟>  --通过JobBuilder构建Job
        JobDetail job = newJob(Hello.class).withIdentity("job1","group1").build();
        //5. 通过TriggerBuilder进行构建Trigger
        Trigger trigger = new Trigger.withIdentity("trigger1","group1").startAt(runTime).build();
        //6. 工厂模式,组装各个组件<JOB,Trigger>
        sched.scheduleJob(job,trigger);
        //7.start
        sched.start();
        log.info("----- Started Scheduler -----");

        log.info("----- Waiting 65 seconds -----");
        try{
        	Thread.sleep(65L*1000L);
        }catch(Exception e){	
        }
        //8.通过Scheduler销毁内置的Trigger和Job
        sched.shutdown(true);
	}
	public static void main(String[] args) throws Exception{
		QuartzTest qzt = new QuartzTest();
		qzt.run();
	}

}



http://blog.csdn.net/chenweitang123/article/details/37777399


http://blog.csdn.net/chenweitang123/article/details/37837557


http://blog.csdn.net/su20145104009/article/details/72842526?locationNum=13&fps=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值