triggerJob主要是用于执行一次任务的场景,传入jobKey即可启动该任务,在scheduler的api中有两个重载的方法,第一个参数为JobKey的方法,测试过,没有什么大问题,问题在于第二个方法,多了一个JobDataMap的参数,请问这个参数在Job实现类里面如何获取,我试过用context去取,结果发现context为null,还请高手赐教。
//调用类
Trigger trigger = scheduler.getTrigger(TriggerKey.triggerKey("some-trigger", "group"));
//这里,trigger和job都具有jobDataMap,均尝试过,仍然无法在job实现类中获取参数
JobDataMap jobDataMap = trigger.getJobDataMap();
jobDataMap.put("param1",some-value1);
jobDataMap.put("param2",some-value2);
scheduler.triggerJob(JobKey.jobKey("some-job", "group"), jobDataMap);
//job实现类
public void execute(JobExecutionContext jobExecutionContext)
throws JobExecutionException {
this.context = jobExecutionContext;
// 使用triggerJob启动任务的时候,我发现context==null
// 和一般情况使用scheduleJob传入JobDataMap的情况不一样
}
下面是API
void triggerJob(JobKey jobKey)
Trigger the identified JobDetail (execute it now).
void triggerJob(JobKey jobKey, JobDataMap data)
Trigger the identified JobDetail (execute it now).