当先锋百科网

首页 1 2 3 4 5 6 7

Java Timer和Quartz都是用于调度任务的工具。Java Timer是Java标准库自带的一个定时器类,而Quartz则是一个完整的作业调度框架。两者的主要区别在于灵活性和功能的丰富程度。

import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Hello World!");
}
};
timer.schedule(task, 5000);
}
}

上面的示例演示了如何使用Java Timer延迟5秒钟运行任务。它是一个简单而有效的方式,但是它缺乏调度复杂任务所需的高级功能。

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.CronScheduleBuilder.cronSchedule;
public class QuartzExample implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Hello World!");
}
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
JobDetail job = newJob(QuartzExample.class)
.withIdentity("myJob", "group1")
.build();
Trigger trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.withSchedule(cronSchedule("0/5 * * * * ?"))
.build();
scheduler.scheduleJob(job, trigger);
}
}

上面的示例演示了如何使用Quartz每5秒钟运行一次任务。Quartz可以使用CRON表达式来调度任务,这使得它非常灵活,并且可以针对不同的任务进行微调和自定义。