Spring - планирование и объединение исполняемых модулей в другом состоянии (каждый экземпляр Runnable имеет свое состояние) - PullRequest
0 голосов
/ 11 июня 2010

Я не могу понять, что использовать для планирования и объединения пулов runnable с различным состоянием (каждый экземпляр Runnable имеет свое состояние).Я мог бы использовать ScheduledExecutorFactoryBean вместе с MethodInvokingRunnable для предоставления аргументов.Но взгляните на ключевой метод ScheduledExecutorFactoryBean, он спроектирован так, что все задачи должны начинаться с самого начала.

    protected void registerTasks(ScheduledExecutorTask[] tasks, ScheduledExecutorService executor) {
        for (ScheduledExecutorTask task : tasks) {
            Runnable runnable = getRunnableToSchedule(task);
            if (task.isOneTimeTask()) {
                executor.schedule(runnable, task.getDelay(), task.getTimeUnit());
            }
            else {
                if (task.isFixedRate()) {
                    executor.scheduleAtFixedRate(runnable, task.getDelay(), task.getPeriod(), task.getTimeUnit());
                }
                else {
                    executor.scheduleWithFixedDelay(runnable, task.getDelay(), task.getPeriod(), task.getTimeUnit());
                }
            }
        }
}

Я не могу придумать, как настроить этот сценарий с помощью ThreadPoolTaskScheduler.

Пожалуйста, помогите мне здесь.Спасибо


РЕДАКТИРОВАТЬ: сокращенная версия: как настроить планировщик задач, который будет запускать сотни "разных экземпляров потоков (с другим состоянием) с интервалом в 2 секунды.

1 Ответ

0 голосов
/ 18 июня 2010

Это просто, я не знаю, о чем я думал, что я его не видел :-)


Я только что программно заполнил массив ScheduledExecutorTask [] ScheduledExecutorFactoryBean тысячами задач, каждый с увеличенным свойством задержки и различным выполняемым.Тогда я просто использовал фабрику ... Действительно полезную фабрику из весны ребята ...

...