传递参数在 Quartz 1.6 中不起作用
Passing parameters is not working in Quartz 1.6
我尝试在 ServletA
中使用 quartz(1.6) api 传递参数
JobDataMap map = new JobDataMap();
map.put("date", "20151101");
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.triggerJob(jobName, groupName, map);
当我触发 JobA 时,它起作用了。
但是我无法从以下代码中获取 JobA 中的参数。
地图为空。
JobDataMap map = jobExecutionContext.getJobDetail().getJobDataMap();
String date = (String) map.get("date");
我是不是漏掉了什么重要的东西?? 感谢您的帮助。
参数映射可以从作业or/and传递到执行触发器。在您的解决方案中,您明确地尝试获取作业的数据图(在 ctx.getJobDetail().getJobDataMap()
),这是 null
因为您通过触发器设置了参数。
您可以使用 JobExecutionContext 的 getMergedJobDataMap
来获取从两者合并的参数映射:
JobDataMap map = jobExecutionContext.getMergedJobDataMap();
String date = (String) map.get("date");
我尝试在 ServletA
中使用 quartz(1.6) api 传递参数 JobDataMap map = new JobDataMap();
map.put("date", "20151101");
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.triggerJob(jobName, groupName, map);
当我触发 JobA 时,它起作用了。 但是我无法从以下代码中获取 JobA 中的参数。 地图为空。
JobDataMap map = jobExecutionContext.getJobDetail().getJobDataMap();
String date = (String) map.get("date");
我是不是漏掉了什么重要的东西?? 感谢您的帮助。
参数映射可以从作业or/and传递到执行触发器。在您的解决方案中,您明确地尝试获取作业的数据图(在 ctx.getJobDetail().getJobDataMap()
),这是 null
因为您通过触发器设置了参数。
您可以使用 JobExecutionContext 的 getMergedJobDataMap
来获取从两者合并的参数映射:
JobDataMap map = jobExecutionContext.getMergedJobDataMap();
String date = (String) map.get("date");