我尝试使用ServletA中的quartz(1.6)api传递参数
JobDataMap map = new JobDataMap();
map.put("date", "20151101");
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.triggerJob(jobName, groupName, map);
当我触发JobA时,它可以工作。 但我无法通过以下代码在JobA中获取参数。 map为null。
JobDataMap map = jobExecutionContext.getJobDetail().getJobDataMap();
String date = (String) map.get("date");
我是否想念重要的事情? 感谢您的帮助。
答案 0 :(得分:2)
参数映射可以从作业或/和触发器传递给执行。在您的解决方案中,您明确地尝试获取作业的数据图(ctx.getJobDetail().getJobDataMap()
),即null
因为您通过触发器设置参数。
您可以使用JobExecutionContext的getMergedJobDataMap
来获取从两者合并的参数图:
JobDataMap map = jobExecutionContext.getMergedJobDataMap();
String date = (String) map.get("date");