Quartz作业调度中Job初始化的有关问题
Quartz作业调度中Job初始化的问题
使用Quartz,创建JobDetail时是这样的:
老版本的Quartz里面是这样的
这边就碰到一个问题,SimpleJob实现了Quartz的Job接口,SimpleJob初始化的时候是通过JobBuilder.newJob(SimpleJob.class)或者new JobDetail("job1","jGroup1", SimpleJob.class)这种反射的初始化方式来的。
我的SimpleJob还有构造函数,每次触发前有好多属性需要set()一下。
请问,这种问题怎么解决?
------解决方案--------------------
你所说的属性,是不是就是JOB运行需要的参数啊,我一般是在JobDetail定义是PUT在JobDataMap中
使用Quartz,创建JobDetail时是这样的:
- Java code
JobDetail jobDetail = JobBuilder.newJob(SimpleJob.class).withIdentity("Job1", "JobGroup1").build();
老版本的Quartz里面是这样的
- Java code
JobDetail jobDetail = new JobDetail("job1","jGroup1", SimpleJob.class);
这边就碰到一个问题,SimpleJob实现了Quartz的Job接口,SimpleJob初始化的时候是通过JobBuilder.newJob(SimpleJob.class)或者new JobDetail("job1","jGroup1", SimpleJob.class)这种反射的初始化方式来的。
我的SimpleJob还有构造函数,每次触发前有好多属性需要set()一下。
请问,这种问题怎么解决?
------解决方案--------------------
你所说的属性,是不是就是JOB运行需要的参数啊,我一般是在JobDetail定义是PUT在JobDataMap中
- Java code
collectJobDetail = new JobDetail("JOB_"+objId, Scheduler.DEFAULT_GROUP,jobClass); collectJobDetail.getJobDataMap().put("hostIp",hostIp); collectJobDetail.getJobDataMap().put("port",port); Trigger trigger = TriggerUtils.makeMinutelyTrigger(minuteInterval); trigger.setName("JOB_Trigger_"+objId); trigger.setStartTime(new Date()); quartzScheduler.scheduleJob(collectJobDetail,trigger);