我的漫漫程序之旅

专注于JavaWeb开发
随笔 - 39, 文章 - 310, 评论 - 411, 引用 - 0
数据加载中……

Quartz初体验

Quartz是一个作业调度框架.
具体说明请参考项目主页
http://www.opensymphony.com/quartz

下载主页:
好的,速度开始我们的第一个Quartz程序吧.

先建一个你需要安排计划的类,注意此类必须实现Job接口.

import java.util.Date;

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

/**
 * 调度作业类,必须实现Job接口
 * 
 * 
@author zdw
 * 
 
*/

public class StringTest implements Job
{
    
/**
     * 要执行的方法
     
*/

    
public void execute(JobExecutionContext arg0) throws JobExecutionException
    
{
        System.out.println(
"execute at " + new Date());
    }

}

调度控制类:

import java.util.Date;

import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory;

/**
 * 
 * 
@author zdw
 * 
 
*/

public class QuartzTest
{

    
public static void main(String args[])
    
{
        
// 得到可用客户端处理调度程序的工厂
        SchedulerFactory schedFact = new StdSchedulerFactory();
        
// 高度程序接口,控制JobDeail和Trigger
        try
        
{
            Scheduler sched 
= schedFact.getScheduler();
            
// 表示给定工作类的详细信息
            JobDetail jobDetail = new JobDetail("myJob"null, StringTest.class);
            
// 触发器
            Trigger trigger = TriggerUtils.makeSecondlyTrigger();
            
// 设置开始时间,这时设置的是每一秒执行一次
            trigger.setStartTime(TriggerUtils.getEvenSecondDateBefore(new Date()));
            
// 必须设置,不能为空
            trigger.setName("firstTrigger");
            
// 为调度程序设置具体工作和触发器
            sched.scheduleJob(jobDetail, trigger);
            
// fire
            sched.start();
        }
 catch (SchedulerException e)
        
{
            e.printStackTrace();
        }

    }

}
运行一下输出结果为:
execute at Thu May 08 14:54:48 CST 2008
execute at Thu May 
08 14:54:49 CST 2008
execute at Thu May 
08 14:54:50 CST 2008
execute at Thu May 
08 14:54:51 CST 2008
execute at Thu May 
08 14:54:52 CST 2008
显然已经按我们的要求每隔一秒执行了一次方法.

注意这个工程需要用到的jar有:
quartz-all-1.6.1-RC1.jar
commons
-collections-3.2.jar
commons
-logging-1.1.jar
这些jar包在你下载的quartz-1.6.1-RC1.zip都能找到.

posted on 2008-05-08 15:01 々上善若水々 阅读(810) 评论(0)  编辑  收藏 所属分类: opensource


只有注册用户登录后才能发表评论。


网站导航: