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).

居然没有删除功能,结贴吧。。。

http://blog.csdn.net/evankaka/article/category/3155529

谢谢,文章我都看了,可是并没有设计到triggerJob方法的使用

你可以用triggerJobWithVolatileTrigger这个api,data可以从scheduler中取到

直接创建 图片说明

获取

public void execute(JobExecutionContext context) throws JobExecutionException {

        JobDataMap data = context.getMergedJobDataMap();
        ...