欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Quartz的学习

程序员文章站 2022-05-07 23:08:10
...

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()方法,进行你自己的业务逻辑的处理。

相关标签: Timer