一、创建JobDetail及Trigger实例
//通过usingJobData方法进行参数传递
//设置不同的参数类型进行参数传递
JobDetail jobDetail = (JobDetail) JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob","groupOne").usingJobData("message","this is a JobDetail").usingJobData("FloatValue",30.1415F).build();
//通过usingJobData方法进行参数传递
//设置不同的参数类型进行参数传递
SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("simpleTrigger","group1").
withSchedule(SimpleScheduleBuilder.simpleSchedule(). withIntervalInSeconds(2).repeatForever()).startNow().usingJobData("messages","this is a trigger").usingJobData("DoubleValue",2.4D).build();
二、接收参数
public void execute(JobExecutionContext context) throws JobExecutionException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("start print time: "+sdf.format(new Date()));
System.out.println("Hello world");
JobDetail jobDetail = context.getJobDetail();
//获取任务组
System.out.println("group "+jobDetail.getKey().getGroup());
//获取任务名称
System.out.println("name "+jobDetail.getKey().getName());
//任务参数获取
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
System.out.println("message "+jobDataMap.getString("message"));
System.out.println("FloatValue"+ jobDataMap.getFloat("FloatValue"));
Trigger trigger = context.getTrigger();
//获取调度组
System.out.println("group "+trigger.getKey().getGroup());
//获取调度名称
System.out.println("name "+trigger.getKey().getName());
//调度参数获取
JobDataMap tigDataMap = context.getTrigger().getJobDataMap();
System.out.println("messages "+tigDataMap.getString("messages"));
System.out.println("DoubleValue"+ tigDataMap.getDouble("DoubleValue"));
}
若传输的参数名称出现重复的话(key重复),则会覆盖JobDetail中的key。获取Trigger中的key对应的值
三、还可通过set方法进行参数获取
private String message;
private String messages;
private Float FloatValue;
private Double DoubleValue;
public void setMessage(String message){
this.message= message;
}
public void setMessages(String messages){
this.messages= messages;
}
public void setFloatValue(Float FloatValue){
this.FloatValue= FloatValue;
}
public void setDoubleValue(Double DoubleValue){
this.DoubleValue= DoubleValue;
}
public void execute(JobExecutionContext context) throws JobExecutionException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("start print time: "+sdf.format(new Date()));
System.out.println("Hello world");
System.out.println("message "+message);
System.out.println("FloatValue"+ FloatValue));
System.out.println("messages "+messages);
System.out.println("DoubleValue"+ DoubleValue);
}