Como posso fazer para que um método java execute em determinado horário???
T++
Como posso fazer para que um método java execute em determinado horário???
T++
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…
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
Estude a classe TimerTask.
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.