无法访问作业数据从 Quartz 调度程序



我是石英schdeuler的新手,我正在尝试探索石英的功能,使用一个简单的程序访问jobdata,但得到null

我的程序

    object MyMain extends App{
  lazy val quartz = StdSchedulerFactory.getDefaultScheduler
  val Job = new Job {
    override def execute(jobExecutionContext: JobExecutionContext) = {
      println("Event")
      val jobDataMap = jobExecutionContext.getJobDetail.getJobDataMap
      println(jobDataMap.getString("aa"))
    }
  }
  val job = JobBuilder.newJob(Job.getClass)
    .withIdentity("Job", "Group")
    .build
  val trigger: Trigger = TriggerBuilder
    .newTrigger
    .withIdentity("Trigger", "Group")
    .usingJobData("aa","bb")
    .withSchedule(
      CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
    .build
  quartz.start
  quartz.scheduleJob(job, trigger)
}

而不是返回键aa的值,即bb我得到了null 谁能指出应该正确的方法。

终于找到了解决方案,当我使用 getMergedJobDataMap 而不是 getJobDataMap 时它有效

val jobDataMap = jobExecutionContext.getJobDetail.getMergedJobDataMap

最新更新