问题描述
- 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中取到
时间: 2024-11-19 00:36:43