SchedularFactory returns 与新方法相同的实例
Does SchedularFactory returns same instance with new method
我正在使用石英表。在方法 1 中,我正在像这样初始化我的日程表
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(someJob,someTrigger);
在方法 2 中,如果我这样做
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
上面对调度工厂的调用是 return 我在方法 1 中创建的同一个实例,还是 return 另一个实例,然后我需要 link 所有我的工作并由此触发。
由于您要创建 2 个工厂,它们不会 return 相同的调度程序。如果你想使用相同的调度程序,你应该使用单个工厂。
如果您使用单个 StdSchedulerFactory
,调度程序(如果存在)将在未关闭的情况下重新使用:
public Scheduler getScheduler() throws SchedulerException {
if (cfg == null) {
initialize();
}
SchedulerRepository schedRep = SchedulerRepository.getInstance();
Scheduler sched = schedRep.lookup(getSchedulerName());
if (sched != null) {
if (sched.isShutdown()) {
schedRep.remove(getSchedulerName());
} else {
return sched;
}
}
sched = instantiate();
return sched;
}
我正在使用石英表。在方法 1 中,我正在像这样初始化我的日程表
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(someJob,someTrigger);
在方法 2 中,如果我这样做
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
上面对调度工厂的调用是 return 我在方法 1 中创建的同一个实例,还是 return 另一个实例,然后我需要 link 所有我的工作并由此触发。
由于您要创建 2 个工厂,它们不会 return 相同的调度程序。如果你想使用相同的调度程序,你应该使用单个工厂。
如果您使用单个 StdSchedulerFactory
,调度程序(如果存在)将在未关闭的情况下重新使用:
public Scheduler getScheduler() throws SchedulerException {
if (cfg == null) {
initialize();
}
SchedulerRepository schedRep = SchedulerRepository.getInstance();
Scheduler sched = schedRep.lookup(getSchedulerName());
if (sched != null) {
if (sched.isShutdown()) {
schedRep.remove(getSchedulerName());
} else {
return sched;
}
}
sched = instantiate();
return sched;
}