问题一
这种带 . 的写法是什么意思?怎么理解
JobDetail senddatajobDetail = JobBuilder.newJob(clszz)
.withIdentity(new JobKey(clszz.getSimpleName(), collectorJobGroup)).storeDurably().build();
JobDetail collectorjobDetail = JobBuilder.newJob(clszz)
.withIdentity(new JobKey(clszz.getSimpleName(), collectorJobGroup)).storeDurably().build();
问题二
这种传递参数怎么理解?
public void startCollectorJob(Class<? extends CollectorJob> clszz,int intervalMin)
源码
private void addTrigger(String group, JobDetail jobDetail, String name,
int intervaleMin) throws SchedulerException {
TriggerKey triggerKey = new TriggerKey(name, group);
boolean istriggerExists = scheduler.checkExists(triggerKey);
if (istriggerExists) {
removeTrigger(name, group);
}
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(triggerKey)
.withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatForever().withIntervalInMinutes(intervaleMin)).startNow()
.forJob(jobDetail).build();
scheduler.scheduleJob(trigger);
}
public void startCollectorJob(Class<? extends CollectorJob> clszz,int intervalMin){
try {
JobDetail collectorjobDetail = JobBuilder.newJob(clszz)
.withIdentity(new JobKey(clszz.getSimpleName(), collectorJobGroup)).storeDurably().build();
scheduler.addJob(collectorjobDetail, true);
addTrigger(clszz.getSimpleName(),collectorjobDetail, intervalMin);
} catch (SchedulerException e) {
log.error("start collector job error,jobname:{}",clszz.getName());
log.error("start collector job error",e);
e.printStackTrace();
}
}
public void starSendDataJob(Class<? extends SendDataJob> clszz,int intervalMin,String topcic){
try {
JobDetail senddatajobDetail = JobBuilder.newJob(clszz)
.withIdentity(new JobKey(clszz.getSimpleName(), collectorJobGroup)).storeDurably().build();
senddatajobDetail.getJobDataMap().put("topic", topcic);
scheduler.addJob(senddatajobDetail, true);
addTrigger(clszz.getSimpleName(),senddatajobDetail, intervalMin);
} catch (SchedulerException e) {
log.error("start send data job error,jobname:{}",clszz.getName());
log.error("start send data job error",e);
e.printStackTrace();
}
}
问题一:
具体到这个例子,是
java
里的构造器模式,可以做默认参数和按需调参。问题二: