无法从Quartz调度程序访问jobData

时间:2018-03-16 14:29:21

标签: java scala quartz-scheduler

我是石英schdeuler的新手,我正在尝试探索quartz的功能,使用一个简单的程序访问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 任何人都可以指出应该是正确的方法。

1 个答案:

答案 0 :(得分:0)

最后找出了解决方案,当我使用var tests = []; var TEST_REGEXP = /(spec|test)\.js$/i; var BASE_URL = '/base/build/js'; var BASE_URL_REGEXP = /^\/base\/build\/js\/|\.js$/g; // Get a list of all the test files to include Object.keys(window.__karma__.files).forEach(function (file) { if (TEST_REGEXP.test(file)) { var normalizedTestModule = file.replace(BASE_URL_REGEXP, '') tests.push(normalizedTestModule) } }) require.config({ // Karma serves files under /base, which is the basePath from your config file baseUrl: BASE_URL, paths: { 'env': 'env', 'Utils': './utils/utils', 'exampledata' : '../../documents/exampleData', 'jquery': '../../node_modules/jquery/dist/jquery.min', 'underscore': '../../node_modules/underscore/underscore-min', 'backbone': '../../node_modules/backbone/backbone-min', 'backbone.touch': '../../node_modules/backbone.touch/dist/backbone.touch.min', 'd3' : '../../node_modules/d3/build/d3' }, shim: { 'underscore': { exports: '_' } }, deps: tests, // we have to kickoff jasmine, as it is asynchronous callback: window.__karma__.start }) 代替getMergedJobDataMap

时,它有效
getJobDataMap