1

我正在使用石英时间表。在方法1中,我正在像这样初始化我的计划

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

在方法2中,如果我这样做

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

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

4

1 回答 1

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;
}
于 2017-08-01T07:31:21.490 回答