传递参数在 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");