Metodo java que executa em determiado horário (Resolvido)

7 respostas
viniciusgundim

Como posso fazer para que um método java execute em determinado horário???

T++

7 Respostas

Roger75

Se estiver usando Linux use o cron ( http://en.wikipedia.org/wiki/Cron )

viniciusgundim

Poderia usar o cron sim ou o esquema de agendar tarefa no windows, mais queria que a própria aplicação fizesse isso…

Alguem tem alguma sugestão???

Fico no aguardo…

finotti

http://www.guj.com.br/posts/list/79706.java

luiz.portnoy

Faça uma thread de baixa prioridade que irá verificar o horário a cada minuto. Quando o horário for igual ao que você quer, a thread é executada.

Ex.:

@Override
    public void run() {
        
        while (true) {
            try {
                     if (horarioDaMaquina == seuHorario)
                     {
                          //faz algo
                      }
                   Thread.sleep(60000); // 1 minuto
                
            } catch (InterruptedException e) {
            }
        }
    }

Dai, você cria uma instancia dessa classe que tem a thread :

SuaClasseComThread x = new SuaClasseComThread();
x.setPriority(Thread.MIN_PRIORITY);

Espero ter ajudado

andreiribas

Estude a classe TimerTask.

Hellmanss

Aconselho utilizar o Quartz!

viniciusgundim

Em cima do post que finotti passou, fiz o seguinte:

public static final long TEMPO = (1000 * 60); // atualiza o site a cada 1 minuto //****INICIA A TAREFA ELE VERIFICA A CADA UM MINUTO****// System.out.println("inicio"); Timer timer = null; if (timer == null) { timer = new Timer(); TimerTask tarefa = new TimerTask() { public void run() { try { System.out.println("Teste Agendador"); //chamar metodo } catch (Exception e) { e.printStackTrace(); } } }; timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO); }

E deu certo, valeu pessoal.

Criado 17 de maio de 2010
Ultima resposta 17 de mai. de 2010
Respostas 7
Participantes 6