Quartz使用例子

1.这里的例子使用的是quartz-all-2.1.7.jar,这个jar包依赖log4j-1.2.16.jar,slf4j-api-1.6.1.jar,slf4j-log4j12-1.6.1.jar

2.上代码


package study.quartz;

import org.quartz.*;
import org.quartz.impl.JobDetailImpl;
import org.quartz.impl.StdSchedulerFactory;

/**
 * Created with IntelliJ IDEA.
 * User: gl
 * Date: 13-6-5
 * Time: 下午7:40
 * ClassDesc:
 * To change this template use File | Settings | File Templates.
 */
public class TestQuartz {
    public static void main(String[] args) throws SchedulerException {
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();

        JobDetail jobDetail = JobBuilder.newJob()
                .ofType(HelloJob.class)
                .usingJobData("Test1","Quartz")
                .withIdentity("Test1","Group1")
                .build();//通过JobBuilder构建JobDetailImpl 实例,也可以直接new JobDetailImpl

        Trigger trigger = TriggerBuilder.newTrigger()
                .withSchedule(CronScheduleBuilder.cronSchedule("0/3 * * * * ?"))
                .forJob("Test1","Group1")       //Trigger找到对应的名称为Test1组为Group1的Job,如果不存在则会在执行scheduler.scheduleJob(jobDetail,trigger);报错
                .build();//通过TriggerBuilder构建CronTriggerImpl实例,也可以直接new CronTriggerImpl

        scheduler.scheduleJob(jobDetail,trigger);//任务每3秒触发一次

        scheduler.start();
    }
}
package study.quartz;

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

/**
 * Created with IntelliJ IDEA.
 * User: gl
 * Date: 13-6-6
 * Time: 上午9:57
 * ClassDesc:
 * To change this template use File | Settings | File Templates.
 */
public class HelloJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
        String a = (String)jobDataMap.get("Test1");
        System.out.println("Hello " + a);
    }
}


任务的定义比较简单,只需要implements Job,实现execute方法即可,触发任务时,execute方法会执行.

示例定义的是一个每三秒执行一次的任务,通过TriggerBuilder构建Trigger实例,也可以直接通过new方式构建.

这个示例使用的是默认的quartz配置,如果指定配置,可以编辑一个Properties文件,

schedulerFactory.initialize(props);//初始化指定配置


第一次发文章,不足之处请各位看客斧正,欢迎交流!

转载于:https://my.oschina.net/u/1042053/blog/135958

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值