我是石英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
任何人都可以指出应该是正确的方法。
答案 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