2013-06-21 3 views

ответ

2

Я бы рекомендовал вам использовать ScheduledExecutorService. Обоснование: much более легкий в использовании, чем Timer или TimerTask.

Вы можете получить его, используя, например, Executors.newScheduledThreadPool().

+0

Благодарность за suggession, но я не беспокоил с реализацией, Есть ли другое обоснование в его использовании. –

+0

@AnkitZalani Ну да, это Just Works (tm), он был написан людьми, которые действительно знают их вещи, как таковые, по сути, без ошибок;) Кроме того, у вас есть все «ExecutorService» в вашем распоряжении тоже – fge

+0

I просто посмотри на это. Кажется перспективным. Спасибо ... –

2

Если вы используете Spring, другое решение - @Scheduled. Просто аннотируйте желаемый метод с помощью этой аннотации и укажите задержку или определенное время, когда вы хотите вызвать. Преимущество состоит в том, что вам не нужен новый класс, реализующий Runnable и относящийся к вам с помощью нескольких потоков (хотя рамки Executors просты в использовании). Но вам нужен класс, у которого метод с аннотацией будет Spring Bean; также метод должен возвращать пустоту и не иметь аргументов.

Это на самом деле это просто:

@Scheduled(fixedRate = 5000)//the method is called once every 5 seconds 
public void myScheduledMethod() { 
    //do you stuff 
}