您的位置:首页 > 其它

quartz入门实例

2015-01-29 16:12 274 查看
这个例子展示了如何启动和运行Quartz。它将驱动一个Job然后说“hello quartz”。

首先,创建一个HelloJob类并实现Job接口,代码如下:

package xl.insist;

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

public class HelloJob implements Job {

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("----------------hello quartz----------------");
}

}


然后创建SimpleExample类,代码如下:

import java.util.Calendar;
import java.util.Date;

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

public class SimpleExample {
public static void main(String[] args) {
//开始计时
new Thread(new Runnable() {
@Override
public void run() {
startTiming();
}
}).start();
//使用quartz驱动任务
executeTask();
}

private static void executeTask() {
try {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
// define the job and tie it to our HelloJob class
JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();
// compute a time that is on the next round minute
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND, 5);
Date triggerStartTime = DateBuilder.evenSecondDate(calendar.getTime());
// Trigger the job to run on the next round minute
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startAt(triggerStartTime).build();
// Tell quartz to schedule the job using our trigger
sched.scheduleJob(job, trigger);
sched.start();
Thread.sleep(10L * 1000L);
sched.shutdown();
System.out.println("End of the timer");
} catch (SchedulerException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

private static void startTiming() {
for (int i = 0; i < 11; i++) {
if(i == 0) {
System.out.println("开始计时");
} else {
System.out.println(i + "second");
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}


运行就能从控制台看到结果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  quartz