Quartz_任务调度器_对任务进行调度
Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
导入并构建运行环境
简单示例
一个简单的quartz任务调度例子,实现了在1秒后执行HelloJob。
SimpleExample.java
import static org.quartz.DateBuilder.evenSecondDateAfterNow; import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; public class SimpleExample { /** * 一个简单的quartz任务调度例子,实现了在1秒后执行HelloJob,job的内容是在控制台输出一句话。 * 1.创建一个任务 * 2.创建一个触发器 * 3.创建一个调度器 * 4.把任务和触发器丢入调度器中 * 5.提交服务 * 6.关闭服务 * @throws Exception */ public void run() throws Exception { //1.创建一个任务:通过JobBuilder的静态方法获取一个任务实例JobDetail。 JobDetail job = newJob(HelloJob.class) .withIdentity("job1", "group1") .build(); //2.创建一个触发器:通过JobBuilder的静态方法获取一个触发器Trigger。 Trigger trigger = newTrigger() .withIdentity("trigger1", "group1") .startAt(evenSecondDateAfterNow()) .build(); //3.创建一个调度器 SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); //4.把任务和触发器丢入调度器中 sched.scheduleJob(job, trigger); //5.提交服务 System.out.println("start............"); sched.start(); try { //五秒后关闭服务 Thread.sleep(5L * 1000L); } catch (Exception e) { } //6.关闭服务 System.out.println("shutdown............"); sched.shutdown(true); } public static void main(String[] args) throws Exception { SimpleExample example = new SimpleExample(); example.run(); } }
HelloJob.java
import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class HelloJob implements Job { public HelloJob() { } public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("我在这里龙卷风摧毁停车场!!!"); } }
运行结果: