Как мне управлять задачами таймера Java? - PullRequest
1 голос
/ 13 октября 2009

Я ищу несколько советов о том, как управлять несколькими задачами таймера. Я хотел бы иметь возможность динамически создавать таймеры, а затем, когда каждый таймер завершит работу, он будет сброшен сам.

Пример:

Таймер 1 - выполнить действие x - сбросить выполнение действия x снова через 30 минут

Таймер 2 - выполнить действие у - снова выполнить действие y через 10 минут

Ответы [ 3 ]

5 голосов
/ 13 октября 2009

То, что вы хотите, это ScheduledExecutorService .

Позволяет планировать выполнение задач в определенное время или с заданной скоростью.

1 голос
/ 13 октября 2009

Следующий код создает таймер и выполняет его каждые 1000 мс после начальной задержки в 500 мс. Вы можете легко определить два или более таймера таким образом.

TimerTask task = new TimerTask() {
    @Override
    public void run() {
        System.out.println( "exec" );
    }
};

new Timer().scheduleAtFixedRate( task, 500, 1000 );
0 голосов
/ 14 октября 2009

Возможно, стоит пересмотреть Quartz Enterprise Job Scheduler

Quartz - это полнофункциональная система планирования заданий с открытым исходным кодом, которую можно интегрировать или использовать практически с любым приложением J2EE или J2SE - от самого маленького автономного приложения до самой большой системы электронной коммерции. Кварц можно использовать для создания простых или сложных графиков выполнения десятков, сотен или даже десятков тысяч заданий; задания, задачи которых определены как стандартные компоненты Java или EJB.

...