Централизованный планировщик задач

Мы используем планировщик задач в нашем расширении smartfox, и у нас есть 6 различных задач расписания. С каждым запросом на расширение количество активных потоков smartfox увеличивается на размер пула потоков, который мы устанавливаем для каждой службы scheduleexecutor. Похоже, нам нужно получить 1 централизованный планировщик и ссылаться на него из других классов. Мы просто не знаем, как сохранить ссылку на него и создать новую задачу, не заполняя активный пул новыми потоками. Пожалуйста, дайте мне знать, как централизовать планировщик и сохранить ссылку на него.


person Leon    schedule 23.04.2013    source источник


Ответы (1)


Вы можете заменить ScheduleExecutors на планировщик Quartz — вы можете установить максимальное количество потоков в его пуле потоков через org.quartz.threadPool.threadCount свойство конфигурации.

Самый простой способ сделать ссылку на планировщик доступной во всех ваших потоках, например.

public class SchedulerWrapper {
    private static Scheduler scheduler;

    public static void addJob(JobDetail jobDetail) {
        scheduler.addJob(jobDetail, true);
    }
}
person Zim-Zam O'Pootertoot    schedule 23.04.2013
comment
Не приведет ли это к замедлению игры? Кстати, это многопользовательская игра в покер. Благодарность - person Leon; 23.04.2013
comment
Это не должно вызывать замедления, если вы установите соответствующий размер пула потоков, например. одна нить на игрока плюс одна нить для дилера. - person Zim-Zam O'Pootertoot; 23.04.2013