org.quartz.JobDataMap 对象

来源:互联网 发布:欧乐b和飞利浦知乎 编辑:程序博客网 时间:2024/06/10 21:16

JobDataMap 是为了方便存入和得到对象的一个对象,使用方法是,先在JobDetial 或者 Trigger 中添加参数,然后在对应的Job 中便可以
得到添加的参数
      
//绑定job到jobdetail 上JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)  .withIdentity("myJob", "group1") //唯一标记符  .usingJobData("name", "ldh") // 添加参数  .usingJobData("age", 24)   // 添加参数              .build(); jobDetail.getJobDataMap().put("name", "zxc");//创建一个最简单的触发器Trigger trigger = TriggerBuilder.newTrigger()          .withIdentity("myTrigger", "group1") //唯一标记符          .withSchedule(SimpleScheduleBuilder.simpleSchedule()  //创建一个简单的调度器                .withIntervalInSeconds(2000)  // 每2秒执行一次                .repeatForever()) // 永远重复执行                    .usingJobData("name", "zxc") // 添加参数  .usingJobData("inter", "桌球")   // 添加参数          .build();


在对应的Job 里面便可以访问到这些数据

package com.quartz.test.hello;import org.quartz.Job;import org.quartz.JobDataMap;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * 任务类,每两秒执行一次hello world * @author 星驰太帅了 * */public class HelloJob implements Job{@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {JobDataMap detailMap = context.getJobDetail().getJobDataMap();JobDataMap triggerMap = context.getTrigger().getJobDataMap();System.out.println(detailMap.get("name"));System.out.println(detailMap.get("age"));System.out.println(triggerMap.get("name"));System.out.println(triggerMap.get("inter"));//也可以直接获取到两者合并的mapJobDataMap mergeMap = context.getMergedJobDataMap();System.out.println(mergeMap.get("age"));System.out.println(mergeMap.get("name"));System.out.println(mergeMap.get("inter"));//如果key有重复的,优先获取 trigger里面的值}}


第二种访问的方法,是在job 类中定义对应的key属性,便可以访问得到

package com.quartz.test.hello;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * 任务类,每两秒执行一次hello world * @author 星驰太帅了 * */public class HelloJob implements Job{private String name;private Integer age;private String inter;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getInter() {return inter;}public void setInter(String inter) {this.inter = inter;}@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println(name);System.out.println(age);System.out.println(inter);}}


obDataMap 是为了方便存入和得到对象的一个对象,使用方法是,先在JobDetial 或者 Trigger 中添加参数,然后在对应的Job 中便可以
得到添加的参数
原创粉丝点击