quartz2里面Scheduler的triggerJob方法如何使用

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).
查看全部
iSunny_yangyang
iSunny_yangyang
2015/06/15 14:26
  • java
  • quartz
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

6个回复