quartz入门实例

来源:互联网 发布:多益网络历年笔试题 编辑:程序博客网 时间:2024/05/16 06:14

文章基于Quartz 2.2.1 

定义一个需要执行的job

public class HelloJob implements Job {    @Override    public void execute(JobExecutionContext context)            throws JobExecutionException {        JobDetail detail = context.getJobDetail();        String name = detail.getJobDataMap().getString("name");        int age = detail.getJobDataMap().getInt("age");        System.out.println("**********hello " + name + ",age=" + age                + ",time = "                + new SimpleDateFormat("HH:mm:ss").format(new Date()));    }}
定义一个测试类,导入静态内部类的时候eclipse提示类的导入,可以自己手工导入,也可以在newTrigger()前加上TriggerBuilder.

import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.Trigger;import org.quartz.impl.StdSchedulerFactory;import static org.quartz.SimpleScheduleBuilder.simpleSchedule;import static org.quartz.TriggerBuilder.newTrigger;public class QuartzTest {    public static void main(String[] args) throws SchedulerException,            InterruptedException {        // 创建scheduler        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();        scheduler.start();        //定义job并且指向HelloJob        JobDetail job = JobBuilder.newJob(HelloJob.class)                .withIdentity("job1", "group1").usingJobData("name", "quartz").usingJobData("age", 11) // 定义属性                .build();        //触发job执行,并且每一秒重复执行一次        Trigger trigger = newTrigger()                .withIdentity("trigger1", "group1")                .startNow()                .withSchedule(                        simpleSchedule().withIntervalInSeconds(1)                                .repeatForever()).build();        scheduler.scheduleJob(job, trigger);        //运行10秒后关闭        Thread.sleep(10000);        scheduler.shutdown();    }}




0 0