Quartz的学习

1、Quartz 简介
a、Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。
b、主页:http://www.quartz-scheduler.org/

现在写个简单的例子

package com.quartz;

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

public class QuartzTest implements Job {

	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		System.out.println("Quartz is Test");
	}

}
package com.quartz;

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.impl.StdSchedulerFactory;

public class QuartzTest1 {

		public void run() throws SchedulerException {
			SchedulerFactory schedulerFactory=new StdSchedulerFactory();
			Scheduler scheduler=schedulerFactory.getScheduler();
			
			JobDetail jobDetail=new JobDetail("job1", "group1", QuartzTest.class);
			
			SimpleTrigger simpleTrigger=new SimpleTrigger("trigger1", "group1", new Date(), null, 10, 1500L);
			
			scheduler.scheduleJob(jobDetail,simpleTrigger);
			
			scheduler.start();
		}
		
		public static void main(String[] args) throws SchedulerException {
			QuartzTest1 quartzTest1=new QuartzTest1();
			quartzTest1.run();
		}
}

 需要的jar包:commons-logging-1.0.4.jar,quartz-all-1.6.0.jar,jta.jar。

参考了(xiaoyuqi00 的文章)。如果想知道更多的可参考收藏。

下面可以使用jdk的Timer这个类也可以实现类似的功能,来让程序在指定的时间去执行指定的功能。

public void init()
    {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        Date date = calendar.getTime();
       //date是在指定的时间(即每天23点59分59秒)去执行该任务。第三个参数为间隔多长时间后再次执行指定任务
        timer.schedule(new Task(rasManagerService, rasService, configService),
                date,
                1000 * 60 * 60 * 24);
    }
class Task extends TimerTask

Task重写里面的run()方法,进行你自己的业务逻辑的处理。

猜你喜欢

转载自08284008.iteye.com/blog/1306177