2 isunny yangyang iSunny_yangyang 于 2015.06.15 22:26 提问

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

4个回答

iSunny_yangyang
iSunny_yangyang   2015.06.23 15:41
已采纳

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

Evankaka
Evankaka   Ds   Rxr 2015.06.15 23:34
iSunny_yangyang
iSunny_yangyang 谢谢,文章我都看了,可是并没有涉及到triggerJob方法的使用
2 年多之前 回复
iSunny_yangyang
iSunny_yangyang   2015.06.16 09:24

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

tong1sha
tong1sha   2015.06.26 13:48

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

Csdn user default icon
上传中...
上传图片
插入图片