一、quartz的Hello World
quartz是一款功能强大的任务调度框架。
1. 往pom.xml文件添加如下依赖:
4. 任务调度类:public class SimpleExample {public void run() throws Exception {// 加载配置文件,其中必须指定线程池实现类和大小,否则后续的getScheduler()调用会报错Properties props = new Properties();InputStream inStream = SimpleExample.class.getClassLoader().getResourceAsStream("quartz-config.properties");props.load(inStream);// 根据指定的配置来实例化StdSchedulerFactorySchedulerFactory sf = new StdSchedulerFactory(props);// 创建一个内存存储的调度器Scheduler sched = sf.getScheduler();// 任务类封装成标准的JobDetail对象:JobDetail job = new JobDetail("job1", "group1", HelloJob.class);// 指定一个运行时刻Date runTime = TriggerUtils.getEvenMinuteDate(new Date());// 实例化一个简单触发器,在指定时刻触发SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1", runTime);// 调度器通过触发器调度指定任务sched.scheduleJob(job, trigger);// 启动调度器,在这之前,所有任务都不会执行sched.start();// 调度线程休眠,让线程池有时间去运行任务TimeUnit.SECONDS.sleep(70L);// 优雅地关闭调度器// 参数true表示等所有任务都执行完成后才关闭。sched.shutdown(true);}public static void main(String[] args) throws Exception {SimpleExample example = new SimpleExample();example.run();}}
5. 运行main,查看输出结果。
INFO [QuartzScheduler_Worker-1] (HelloJob.java:27) -Hello World! - Mon Nov 04 20:45:00 CST 2013
参考:
http://quartz-scheduler.org/documentation/quartz-1.x/examples/Example1