SchedularFactory是否使用新方法返回相同的实例

时间:2017-08-01 07:20:28

标签: java quartz-scheduler quartz

我正在使用石英计划。在方法1中,我正在初始化我的日程表

Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(someJob,someTrigger);

如果我做方法2

Scheduler scheduler = new StdSchedulerFactory().getScheduler();

以上对调度工厂的调用是否会返回我在方法1中创建的相同实例,或者它是否会返回另一个实例,然后我需要链接所有作业并触发它。

1 个答案:

答案 0 :(得分:1)

由于您要创建2个工厂,因此他们不会返回相同的调度程序。如果要使用相同的调度程序,则应使用单个工厂。

如果您使用单个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;
}