e ae galera queria algum exemplo ou explicação de como usa a classe Timer.
(do pacote java.util).
Por exemplo, eu tenho que pegar os dados do banco de dados a cada 5 minutos. Se os 5 minutos já passaram, eu pego os dados do BD e jogo em alguma variável da minha classe, como se fosse um cache ou algo assim.
Se não tiver passado o tempo, eu só retorno o valor da cache.
Se a sua classe não precisa notificar ninguém a cada cinco minutos como um marcapasso, então no método que realiza o restore do dados você faz a verificação…
if( (System.currentTimeMillis() - ultimaAtualizacao) > 5 * 60 * 1000 ) {
// busca do banco
} else {
// busca do cache
}
mas se realmente quer usar Time então veja este post:
http://www.guj.com.br/posts/list/40535.java#216209
fw
resolvi usando Timer mesmo.
Vou postar o código
public static final long TEMPO = ( 3000 * 60 ); //atualiza o site a cada 3 minutos
Timer timer = null;
List<Produto> cache = null;
public ProdutosMaisVendidosFilter() {
if( ( timer == null ) || (cache == null) ) {
timer = new Timer();
TimerTask tarefa = new TimerTask() {
public void run() {
try {
ProdutoDAO produtodao = new ProdutoDAO();
cache = produtodao.maisVendidos();
}
catch(HibernateException e){
e.printStackTrace();
}
}
};
timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO);
}
}
Estou fazendo algo parecido com o que você fez…
porem, quando tento algo do tipo:
ProdutoDAO produtodao = new ProdutoDAO();
da problema, pois a classe que estou tentando usar não está na pasta Main e sim na Hot.
na hora de tentar dar o deploy, ele diz que o pacote onde ta a classe n existe
e agora?
Queria saber se algum de vcs poderiam me ajudar a explicar o que é essa classe timer, quais as vantagens, desvantagens, características e o conceito, no java.