使用JobDataMap传递参数
如果想在任务的execute()方法实现中回去一些关于这个Job的一些信息,或者传递一些参数,就可以使用JobDataMap。
JobDetail job = JobBuilder.newJob(DemoJob.class) .withIdentity("myJob", "group1") .usingJobData("strData", "Tom") .usingJobData("intData", 15) .build();
在构建JobDetail的时候,使用usingJobData(key, value)方法提供的各种重载形式来加入一些自定义的参数。这些参数可以在execute(JobExecutionContext jobExecutionContext)方法中取得,如下示例所示:
@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { JobKey key = jobExecutionContext.getJobDetail().getKey(); JobDataMap dataMap = jobExecutionContext.getJobDetail().getJobDataMap(); String strData = dataMap.getString("strData"); int intData = dataMap.getInt("intData"); System.out.println("key : " + key); System.out.println("strData : " + strData); System.out.println("intData : " + intData);}
运行结果:
key : group1.myJobstrData : TomintData : 15作者:JohnShen 链接:https://www.jianshu.com/p/35a1e931c414 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。