传递参数在Quartz 1.6中不起作用

时间:2015-11-02 03:16:36

标签: java quartz-scheduler

我尝试使用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");

我是否想念重要的事情? 感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

参数映射可以从作业或/和触发器传递给执行。在您的解决方案中,您明确地尝试获取作业的数据图(ctx.getJobDetail().getJobDataMap()),即null因为您通过触发器设置参数。

您可以使用JobExecutionContext的getMergedJobDataMap来获取从两者合并的参数图:

JobDataMap map = jobExecutionContext.getMergedJobDataMap();
String date = (String) map.get("date");