您的位置:首页 > 编程语言 > Java开发

Java任务调度框架Quartz(1)

2016-08-27 00:32 357 查看
Quartz是知名的定时任务框架。

1.下载Quartz(我用的2.1.7版本),其中doc里有官方提供的示例,可自行学习

2.将lib下的所有Jar包和quartz-all-2.1.7.jar加入到项目中,最好新建一个类库Quartz-core

接下来我以一个最为简单的例子来进行说明:

写两个类,一个用于定义任务deftask,一个用于调用任务usetask‘

这是deftask类,实现job接口的execute方法即可import java.util.Calendar;

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

public class dfitask implements Job {

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("定义的任务正在执行,执行时间:"+Calendar.getInstance().getTime());
}

}这是usetask类,
import java.util.Date;

import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class usetask {

public static void main(String[] args) throws Throwable {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
Date runtime = DateBuilder.evenMinuteDate(new Date());
JobDetail job = JobBuilder.newJob(dfitask.class)
.withIdentity("job1", "group1").build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1").startAt(runtime).build();
scheduler.scheduleJob(job,trigger);
scheduler.start();
Thread.sleep(65L*1000L);
scheduler.shutdown();
}

}


思路其实并不复杂,首先得到一个scheduler实例,定义执行时间runtime,然后将任务和触发器放入 scheduler
第2篇我们将讲到CronTrigger,即如何用Cron表达式定义定时器,不知道的可以自行搜索Cron表达式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: